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 }