Source code: com/sun/syndication/feed/module/ModuleImpl.java
1 /*
2 * Copyright 2004 Sun Microsystems, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17 package com.sun.syndication.feed.module;
18
19 import com.sun.syndication.feed.impl.ObjectBean;
20
21 import java.io.Serializable;
22
23 /**
24 * Base class for modules describing Metadata of feeds, default implementations.
25 * Examples of such modules are the Dublin Core and Syndication modules.
26 * <p>
27 * @author Alejandro Abdelnur
28 *
29 */
30 public abstract class ModuleImpl implements Cloneable,Serializable,Module {
31 private ObjectBean _objBean;
32 private String _uri;
33
34 /**
35 * Constructor.
36 * <p>
37 * @param uri URI of the module.
38 *
39 */
40 protected ModuleImpl(Class beanClass,String uri) {
41 _objBean = new ObjectBean(beanClass,this);
42 _uri = uri;
43 }
44
45 /**
46 * Creates a deep 'bean' clone of the object.
47 * <p>
48 * @return a clone of the object.
49 * @throws CloneNotSupportedException thrown if an element of the object cannot be cloned.
50 *
51 */
52 public Object clone() throws CloneNotSupportedException {
53 return _objBean.clone();
54 }
55
56 /**
57 * Indicates whether some other object is "equal to" this one as defined by the Object equals() method.
58 * <p>
59 * @param other he reference object with which to compare.
60 * @return <b>true</b> if 'this' object is equal to the 'other' object.
61 *
62 */
63 public boolean equals(Object other) {
64 return _objBean.equals(other);
65 }
66
67 /**
68 * Returns a hashcode value for the object.
69 * <p>
70 * It follows the contract defined by the Object hashCode() method.
71 * <p>
72 * @return the hashcode of the bean object.
73 *
74 */
75 public int hashCode() {
76 return _objBean.hashCode();
77 }
78
79 /**
80 * Returns the String representation for the object.
81 * <p>
82 * @return String representation for the object.
83 *
84 */
85 public String toString() {
86 return _objBean.toString();
87 }
88
89 /**
90 * Returns the URI of the module.
91 * <p>
92 * @return URI of the module.
93 *
94 */
95 public String getUri() {
96 return _uri;
97 }
98
99 }