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 import com.sun.syndication.feed.impl.CopyFromHelper; 21 22 import java.util.Collections; 23 import java.util.HashMap; 24 import java.util.Map; 25 import java.io.Serializable; 26 27 /** 28 * Subject of the Dublin Core ModuleImpl, default implementation. 29 * <p> 30 * @see <a href="http://web.resource.org/rss/1.0/modules/dc/">Dublin Core module</a>. 31 * @author Alejandro Abdelnur 32 * 33 */ 34 public class DCSubjectImpl implements Cloneable,Serializable, DCSubject { 35 private ObjectBean _objBean; 36 private String _taxonomyUri; 37 private String _value; 38 39 /** 40 * Default constructor. All properties are set to <b>null</b>. 41 * <p> 42 * 43 */ 44 public DCSubjectImpl() { 45 _objBean = new ObjectBean(this.getClass(),this); 46 } 47 48 /** 49 * Creates a deep 'bean' clone of the object. 50 * <p> 51 * @return a clone of the object. 52 * @throws CloneNotSupportedException thrown if an element of the object cannot be cloned. 53 * 54 */ 55 public Object clone() throws CloneNotSupportedException { 56 return _objBean.clone(); 57 } 58 59 /** 60 * Indicates whether some other object is "equal to" this one as defined by the Object equals() method. 61 * <p> 62 * @param other he reference object with which to compare. 63 * @return <b>true</b> if 'this' object is equal to the 'other' object. 64 * 65 */ 66 public boolean equals(Object other) { 67 return _objBean.equals(other); 68 } 69 70 /** 71 * Returns a hashcode value for the object. 72 * <p> 73 * It follows the contract defined by the Object hashCode() method. 74 * <p> 75 * @return the hashcode of the bean object. 76 * 77 */ 78 public int hashCode() { 79 return _objBean.hashCode(); 80 } 81 82 /** 83 * Returns the String representation for the object. 84 * <p> 85 * @return String representation for the object. 86 * 87 */ 88 public String toString() { 89 return _objBean.toString(); 90 } 91 92 /** 93 * Returns the DublinCore subject taxonomy URI. 94 * <p> 95 * @return the DublinCore subject taxonomy URI, <b>null</b> if none. 96 * 97 */ 98 public String getTaxonomyUri() { 99 return _taxonomyUri; 100 } 101 102 /** 103 * Sets the DublinCore subject taxonomy URI. 104 * <p> 105 * @param taxonomyUri the DublinCore subject taxonomy URI to set, <b>null</b> if none. 106 * 107 */ 108 public void setTaxonomyUri(String taxonomyUri) { 109 _taxonomyUri = taxonomyUri; 110 } 111 112 /** 113 * Returns the DublinCore subject value. 114 * <p> 115 * @return the DublinCore subject value, <b>null</b> if none. 116 * 117 */ 118 public String getValue() { 119 return _value; 120 } 121 122 /** 123 * Sets the DublinCore subject value. 124 * <p> 125 * @param value the DublinCore subject value to set, <b>null</b> if none. 126 * 127 */ 128 public void setValue(String value) { 129 _value = value; 130 } 131 132 public Class getInterface() { 133 return DCSubject.class; 134 } 135 136 public void copyFrom(Object obj) { 137 COPY_FROM_HELPER.copy(this,obj); 138 } 139 140 private static final CopyFromHelper COPY_FROM_HELPER; 141 142 static { 143 Map basePropInterfaceMap = new HashMap(); 144 basePropInterfaceMap.put("taxonomyUri",String.class); 145 basePropInterfaceMap.put("value",String.class); 146 147 Map basePropClassImplMap = Collections.EMPTY_MAP; 148 149 COPY_FROM_HELPER = new CopyFromHelper(DCSubject.class,basePropInterfaceMap,basePropClassImplMap); 150 } 151 152 }