001: /*
002: * Copyright 2004 Sun Microsystems, Inc.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: *
016: */
017: package com.sun.syndication.feed.module;
018:
019: import com.sun.syndication.feed.impl.CopyFromHelper;
020: import com.sun.syndication.feed.impl.ObjectBean;
021:
022: import java.util.*;
023:
024: /**
025: * Dublin Core ModuleImpl, default implementation.
026: * <p>
027: * @see <a href="http://web.resource.org/rss/1.0/modules/dc/">Dublin Core module</a>.
028: * @author Alejandro Abdelnur
029: *
030: */
031: public class DCModuleImpl extends ModuleImpl implements DCModule {
032: private ObjectBean _objBean;
033: private List _title;
034: private List _creator;
035: private List _subject;
036: private List _description;
037: private List _publisher;
038: private List _contributors;
039: private List _date;
040: private List _type;
041: private List _format;
042: private List _identifier;
043: private List _source;
044: private List _language;
045: private List _relation;
046: private List _coverage;
047: private List _rights;
048:
049: /**
050: * Properties to be ignored when cloning.
051: */
052: private static final Set IGNORE_PROPERTIES = new HashSet();
053:
054: /**
055: * Unmodifiable Set containing the convenience properties of this class.
056: * <p>
057: * Convenience properties are mapped to Modules, for cloning the convenience
058: * properties can be ignored as the will be copied as part of the module
059: * cloning.
060: */
061: public static final Set CONVENIENCE_PROPERTIES = Collections
062: .unmodifiableSet(IGNORE_PROPERTIES);
063:
064: static {
065: IGNORE_PROPERTIES.add("title");
066: IGNORE_PROPERTIES.add("creator");
067: IGNORE_PROPERTIES.add("subject");
068: IGNORE_PROPERTIES.add("description");
069: IGNORE_PROPERTIES.add("publisher");
070: IGNORE_PROPERTIES.add("contributor");
071: IGNORE_PROPERTIES.add("date");
072: IGNORE_PROPERTIES.add("type");
073: IGNORE_PROPERTIES.add("format");
074: IGNORE_PROPERTIES.add("identifier");
075: IGNORE_PROPERTIES.add("source");
076: IGNORE_PROPERTIES.add("language");
077: IGNORE_PROPERTIES.add("relation");
078: IGNORE_PROPERTIES.add("coverage");
079: IGNORE_PROPERTIES.add("rights");
080: }
081:
082: /**
083: * Default constructor. All properties are set to <b>null</b>.
084: * <p>
085: *
086: */
087: public DCModuleImpl() {
088: super (DCModule.class, URI);
089: _objBean = new ObjectBean(DCModule.class, this ,
090: CONVENIENCE_PROPERTIES);
091: }
092:
093: /**
094: * Returns the DublinCore module titles.
095: * <p>
096: * @return a list of Strings representing the DublinCore module title,
097: * an empty list if none.
098: *
099: */
100: public List getTitles() {
101: return (_title == null) ? (_title = new ArrayList()) : _title;
102: }
103:
104: /**
105: * Sets the DublinCore module titles.
106: * <p>
107: * @param titles the list of String representing the DublinCore module
108: * titles to set, an empty list or <b>null</b> if none.
109: *
110: */
111: public void setTitles(List titles) {
112: _title = titles;
113: }
114:
115: /**
116: * Gets the DublinCore module title. Convenience method that can be used to
117: * obtain the first item, <b>null</b> if none.
118: * <p>
119: * @return the first DublinCore module title, <b>null</b> if none.
120: */
121: public String getTitle() {
122: return ((_title != null) && (_title.size() > 0)) ? (String) _title
123: .get(0)
124: : null;
125: }
126:
127: /**
128: * Sets the DublinCore module title. Convenience method that can be used
129: * when there is only one title to set.
130: * <p>
131: * @param title the DublinCore module title to set, <b>null</b> if none.
132: *
133: */
134: public void setTitle(String title) {
135: _title = new ArrayList();
136: _title.add(title);
137: }
138:
139: /**
140: * Returns the DublinCore module creator.
141: * <p>
142: * @return a list of Strings representing the DublinCore module creator,
143: * an empty list if none.
144: *
145: */
146: public List getCreators() {
147: return (_creator == null) ? (_creator = new ArrayList())
148: : _creator;
149: }
150:
151: /**
152: * Sets the DublinCore module creators.
153: * <p>
154: * @param creators the list of String representing the DublinCore module
155: * creators to set, an empty list or <b>null</b> if none.
156: *
157: */
158: public void setCreators(List creators) {
159: _creator = creators;
160: }
161:
162: /**
163: * Gets the DublinCore module title. Convenience method that can be used
164: * to obtain the first item, <b>null</b> if none.
165: * <p>
166: * @return the first DublinCore module title, <b>null</b> if none.
167: */
168: public String getCreator() {
169: return ((_creator != null) && (_creator.size() > 0)) ? (String) _creator
170: .get(0)
171: : null;
172: }
173:
174: /**
175: * Sets the DublinCore module creator. Convenience method that can be used
176: * when there is only one creator to set.
177: * <p>
178: * @param creator the DublinCore module creator to set, <b>null</b> if none.
179: *
180: */
181: public void setCreator(String creator) {
182: _creator = new ArrayList();
183: _creator.add(creator);
184: }
185:
186: /**
187: * Returns the DublinCore module subjects.
188: * <p>
189: * @return a list of DCSubject elements with the DublinCore module subjects,
190: * an empty list if none.
191: *
192: */
193: public List getSubjects() {
194: return (_subject == null) ? (_subject = new ArrayList())
195: : _subject;
196: }
197:
198: /**
199: * Sets the DublinCore module subjects.
200: * <p>
201: * @param subjects the list of DCSubject elements with the DublinCore
202: * module subjects to set, an empty list or <b>null</b> if none.
203: *
204: */
205: public void setSubjects(List subjects) {
206: _subject = subjects;
207: }
208:
209: /**
210: * Gets the DublinCore module subject. Convenience method that can be used
211: * to obtain the first item, <b>null</b> if none.
212: * <p>
213: * @return the first DublinCore module subject, <b>null</b> if none.
214: */
215: public DCSubject getSubject() {
216: return ((_subject != null) && (_subject.size() > 0)) ? (DCSubject) _subject
217: .get(0)
218: : null;
219: }
220:
221: /**
222: * Sets the DCSubject element. Convenience method that can be used when
223: * there is only one subject to set.
224: * <p>
225: * @param subject the DublinCore module subject to set, <b>null</b> if none.
226: *
227: */
228: public void setSubject(DCSubject subject) {
229: _subject = new ArrayList();
230: _subject.add(subject);
231: }
232:
233: /**
234: * Returns the DublinCore module description.
235: * <p>
236: * @return a list of Strings representing the DublinCore module
237: * description, an empty list if none.
238: *
239: */
240: public List getDescriptions() {
241: return (_description == null) ? (_description = new ArrayList())
242: : _description;
243: }
244:
245: /**
246: * Sets the DublinCore module descriptions.
247: * <p>
248: * @param descriptions the list of String representing the DublinCore
249: * module descriptions to set, an empty list or <b>null</b> if none.
250: *
251: */
252: public void setDescriptions(List descriptions) {
253: _description = descriptions;
254: }
255:
256: /**
257: * Gets the DublinCore module description. Convenience method that can be
258: * used to obtain the first item, <b>null</b> if none.
259: * <p>
260: * @return the first DublinCore module description, <b>null</b> if none.
261: */
262: public String getDescription() {
263: return ((_description != null) && (_description.size() > 0)) ? (String) _description
264: .get(0)
265: : null;
266: }
267:
268: /**
269: * Sets the DublinCore module description. Convenience method that can be
270: * used when there is only one description to set.
271: * <p>
272: * @param description the DublinCore module description to set, <b>null</b> if none.
273: *
274: */
275: public void setDescription(String description) {
276: _description = new ArrayList();
277: _description.add(description);
278: }
279:
280: /**
281: * Returns the DublinCore module publisher.
282: * <p>
283: * @return a list of Strings representing the DublinCore module publisher,
284: * an empty list if none.
285: *
286: */
287: public List getPublishers() {
288: return (_publisher == null) ? (_publisher = new ArrayList())
289: : _publisher;
290: }
291:
292: /**
293: * Sets the DublinCore module publishers.
294: * <p>
295: * @param publishers the list of String representing the DublinCore module
296: * publishers to set, an empty list or <b>null</b> if none.
297: *
298: */
299: public void setPublishers(List publishers) {
300: _publisher = publishers;
301: }
302:
303: /**
304: * Gets the DublinCore module title. Convenience method that can be used to
305: * obtain the first item, <b>null</b> if none.
306: * <p>
307: * @return the first DublinCore module title, <b>null</b> if none.
308: */
309: public String getPublisher() {
310: return ((_publisher != null) && (_publisher.size() > 0)) ? (String) _publisher
311: .get(0)
312: : null;
313: }
314:
315: /**
316: * Sets the DublinCore module publisher. Convenience method that can be
317: * used when there is only one publisher to set.
318: * <p>
319: * @param publisher the DublinCore module publisher to set, <b>null</b> if none.
320: *
321: */
322: public void setPublisher(String publisher) {
323: _publisher = new ArrayList();
324: _publisher.add(publisher);
325: }
326:
327: /**
328: * Returns the DublinCore module contributor.
329: * <p>
330: * @return a list of Strings representing the DublinCore module contributor,
331: * an empty list if none.
332: *
333: */
334: public List getContributors() {
335: return (_contributors == null) ? (_contributors = new ArrayList())
336: : _contributors;
337: }
338:
339: /**
340: * Sets the DublinCore module contributors.
341: * <p>
342: * @param contributors the list of String representing the DublinCore
343: * module contributors to set, an empty list or <b>null</b> if none.
344: *
345: */
346: public void setContributors(List contributors) {
347: _contributors = contributors;
348: }
349:
350: /**
351: * Gets the DublinCore module contributor. Convenience method that can be
352: * used to obtain the first item, <b>null</b> if none.
353: * <p>
354: * @return the first DublinCore module contributor, <b>null</b> if none.
355: */
356: public String getContributor() {
357: return ((_contributors != null) && (_contributors.size() > 0)) ? (String) _contributors
358: .get(0)
359: : null;
360: }
361:
362: /**
363: * Sets the DublinCore module contributor. Convenience method that can be
364: * used when there is only one contributor to set.
365: * <p>
366: * @param contributor the DublinCore module contributor to set, <b>null</b> if none.
367: *
368: */
369: public void setContributor(String contributor) {
370: _contributors = new ArrayList();
371: _contributors.add(contributor);
372: }
373:
374: /**
375: * Returns the DublinCore module date.
376: * <p>
377: * @return a list of Strings representing the DublinCore module date,
378: * an empty list if none.
379: *
380: */
381: public List getDates() {
382: return (_date == null) ? (_date = new ArrayList()) : _date;
383: }
384:
385: /**
386: * Sets the DublinCore module dates.
387: * <p>
388: * @param dates the list of Date representing the DublinCore module dates
389: * to set, an empty list or <b>null</b> if none.
390: *
391: */
392: public void setDates(List dates) {
393: _date = dates;
394: }
395:
396: /**
397: * Gets the DublinCore module date. Convenience method that can be used to
398: * obtain the first item, <b>null</b> if none.
399: * <p>
400: * @return the first DublinCore module date, <b>null</b> if none.
401: */
402: public Date getDate() {
403: return ((_date != null) && (_date.size() > 0)) ? (Date) _date
404: .get(0) : null;
405: }
406:
407: /**
408: * Sets the DublinCore module date. Convenience method that can be used
409: * when there is only one date to set.
410: * <p>
411: * @param date the DublinCore module date to set, <b>null</b> if none.
412: *
413: */
414: public void setDate(Date date) {
415: _date = new ArrayList();
416: _date.add(date);
417: }
418:
419: /**
420: * Returns the DublinCore module type.
421: * <p>
422: * @return a list of Strings representing the DublinCore module type,
423: * an empty list if none.
424: *
425: */
426: public List getTypes() {
427: return (_type == null) ? (_type = new ArrayList()) : _type;
428: }
429:
430: /**
431: * Sets the DublinCore module types.
432: * <p>
433: * @param types the list of String representing the DublinCore module types
434: * to set, an empty list or <b>null</b> if none.
435: *
436: */
437: public void setTypes(List types) {
438: _type = types;
439: }
440:
441: /**
442: * Gets the DublinCore module type. Convenience method that can be used to
443: * obtain the first item, <b>null</b> if none.
444: * <p>
445: * @return the first DublinCore module type, <b>null</b> if none.
446: */
447: public String getType() {
448: return ((_type != null) && (_type.size() > 0)) ? (String) _type
449: .get(0) : null;
450: }
451:
452: /**
453: * Sets the DublinCore module type. Convenience method that can be used
454: * when there is only one type to set.
455: * <p>
456: * @param type the DublinCore module type to set, <b>null</b> if none.
457: *
458: */
459: public void setType(String type) {
460: _type = new ArrayList();
461: _type.add(type);
462: }
463:
464: /**
465: * Returns the DublinCore module format.
466: * <p>
467: * @return a list of Strings representing the DublinCore module format,
468: * an empty list if none.
469: *
470: */
471: public List getFormats() {
472: return (_format == null) ? (_format = new ArrayList())
473: : _format;
474: }
475:
476: /**
477: * Sets the DublinCore module formats.
478: * <p>
479: * @param formats the list of String representing the DublinCore module
480: * formats to set, an empty list or <b>null</b> if none.
481: *
482: */
483: public void setFormats(List formats) {
484: _format = formats;
485: }
486:
487: /**
488: * Gets the DublinCore module format. Convenience method that can be used
489: * to obtain the first item, <b>null</b> if none.
490: * <p>
491: * @return the first DublinCore module format, <b>null</b> if none.
492: */
493: public String getFormat() {
494: return ((_format != null) && (_format.size() > 0)) ? (String) _format
495: .get(0)
496: : null;
497: }
498:
499: /**
500: * Sets the DublinCore module format. Convenience method that can be used
501: * when there is only one format to set.
502: * <p>
503: * @param format the DublinCore module format to set, <b>null</b> if none.
504: *
505: */
506: public void setFormat(String format) {
507: _format = new ArrayList();
508: _format.add(format);
509: }
510:
511: /**
512: * Returns the DublinCore module identifier.
513: * <p>
514: * @return a list of Strings representing the DublinCore module identifier,
515: * an empty list if none.
516: *
517: */
518: public List getIdentifiers() {
519: return (_identifier == null) ? (_identifier = new ArrayList())
520: : _identifier;
521: }
522:
523: /**
524: * Sets the DublinCore module identifiers.
525: * <p>
526: * @param identifiers the list of String representing the DublinCore module
527: * identifiers to set, an empty list or <b>null</b> if none.
528: *
529: */
530: public void setIdentifiers(List identifiers) {
531: _identifier = identifiers;
532: }
533:
534: /**
535: * Gets the DublinCore module identifier. Convenience method that can be
536: * used to obtain the first item, <b>null</b> if none.
537: * <p>
538: * @return the first DublinCore module identifier, <b>null</b> if none.
539: */
540: public String getIdentifier() {
541: return ((_identifier != null) && (_identifier.size() > 0)) ? (String) _identifier
542: .get(0)
543: : null;
544: }
545:
546: /**
547: * Sets the DublinCore module identifier. Convenience method that can be
548: * used when there is only one identifier to set.
549: * <p>
550: * @param identifier the DublinCore module identifier to set, <b>null</b> if none.
551: *
552: */
553: public void setIdentifier(String identifier) {
554: _identifier = new ArrayList();
555: _identifier.add(identifier);
556: }
557:
558: /**
559: * Returns the DublinCore module source.
560: * <p>
561: * @return a list of Strings representing the DublinCore module source,
562: * an empty list if none.
563: *
564: */
565: public List getSources() {
566: return (_source == null) ? (_source = new ArrayList())
567: : _source;
568: }
569:
570: /**
571: * Sets the DublinCore module sources.
572: * <p>
573: * @param sources the list of String representing the DublinCore module
574: * sources to set, an empty list or <b>null</b> if none.
575: *
576: */
577: public void setSources(List sources) {
578: _source = sources;
579: }
580:
581: /**
582: * Gets the DublinCore module source. Convenience method that can be used
583: * to obtain the first item, <b>null</b> if none.
584: * <p>
585: * @return the first DublinCore module source, <b>null</b> if none.
586: */
587: public String getSource() {
588: return ((_source != null) && (_source.size() > 0)) ? (String) _source
589: .get(0)
590: : null;
591: }
592:
593: /**
594: * Sets the DublinCore module source. Convenience method that can be used
595: * when there is only one source to set.
596: * <p>
597: * @param source the DublinCore module source to set, <b>null</b> if none.
598: *
599: */
600: public void setSource(String source) {
601: _source = new ArrayList();
602: _source.add(source);
603: }
604:
605: /**
606: * Returns the DublinCore module language.
607: * <p>
608: * @return a list of Strings representing the DublinCore module language,
609: * an empty list if none.
610: *
611: */
612: public List getLanguages() {
613: return (_language == null) ? (_language = new ArrayList())
614: : _language;
615: }
616:
617: /**
618: * Sets the DublinCore module languages.
619: * <p>
620: * @param languages the list of String representing the DublinCore module
621: * languages to set, an empty list or <b>null</b> if none.
622: *
623: */
624: public void setLanguages(List languages) {
625: _language = languages;
626: }
627:
628: /**
629: * Gets the DublinCore module language. Convenience method that can be
630: * used to obtain the first item, <b>null</b> if none.
631: * <p>
632: * @return the first DublinCore module langauge, <b>null</b> if none.
633: */
634: public String getLanguage() {
635: return ((_language != null) && (_language.size() > 0)) ? (String) _language
636: .get(0)
637: : null;
638: }
639:
640: /**
641: * Sets the DublinCore module language. Convenience method that can be used
642: * when there is only one language to set.
643: * <p>
644: * @param language the DublinCore module language to set, <b>null</b> if none.
645: *
646: */
647: public void setLanguage(String language) {
648: _language = new ArrayList();
649: _language.add(language);
650: }
651:
652: /**
653: * Returns the DublinCore module relation.
654: * <p>
655: * @return a list of Strings representing the DublinCore module relation,
656: * an empty list if none.
657: *
658: */
659: public List getRelations() {
660: return (_relation == null) ? (_relation = new ArrayList())
661: : _relation;
662: }
663:
664: /**
665: * Sets the DublinCore module relations.
666: * <p>
667: * @param relations the list of String representing the DublinCore module
668: * relations to set, an empty list or <b>null</b> if none.
669: *
670: */
671: public void setRelations(List relations) {
672: _relation = relations;
673: }
674:
675: /**
676: * Gets the DublinCore module relation. Convenience method that can be used
677: * to obtain the first item, <b>null</b> if none.
678: * <p>
679: * @return the first DublinCore module relation, <b>null</b> if none.
680: */
681: public String getRelation() {
682: return ((_relation != null) && (_relation.size() > 0)) ? (String) _relation
683: .get(0)
684: : null;
685: }
686:
687: /**
688: * Sets the DublinCore module relation. Convenience method that can be used
689: * when there is only one relation to set.
690: * <p>
691: * @param relation the DublinCore module relation to set, <b>null</b> if none.
692: *
693: */
694: public void setRelation(String relation) {
695: _relation = new ArrayList();
696: _relation.add(relation);
697: }
698:
699: /**
700: * Returns the DublinCore module coverage.
701: * <p>
702: * @return a list of Strings representing the DublinCore module coverage,
703: * an empty list if none.
704: *
705: */
706: public List getCoverages() {
707: return (_coverage == null) ? (_coverage = new ArrayList())
708: : _coverage;
709: }
710:
711: /**
712: * Sets the DublinCore module coverages.
713: * <p>
714: * @param coverages the list of String representing the DublinCore module
715: * coverages to set, an empty list or <b>null</b> if none.
716: *
717: */
718: public void setCoverages(List coverages) {
719: _coverage = coverages;
720: }
721:
722: /**
723: * Gets the DublinCore module coverage. Convenience method that can be used
724: * to obtain the first item, <b>null</b> if none.
725: * <p>
726: * @return the first DublinCore module coverage, <b>null</b> if none.
727: */
728: public String getCoverage() {
729: return ((_coverage != null) && (_coverage.size() > 0)) ? (String) _coverage
730: .get(0)
731: : null;
732: }
733:
734: /**
735: * Sets the DublinCore module coverage. Convenience method that can be used
736: * when there is only one coverage to set.
737: * <p>
738: * @param coverage the DublinCore module coverage to set, <b>null</b> if none.
739: *
740: */
741: public void setCoverage(String coverage) {
742: _coverage = new ArrayList();
743: _coverage.add(coverage);
744: }
745:
746: /**
747: * Returns the DublinCore module rights.
748: * <p>
749: * @return a list of Strings representing the DublinCore module rights,
750: * an empty list if none.
751: *
752: */
753: public List getRightsList() {
754: return (_rights == null) ? (_rights = new ArrayList())
755: : _rights;
756: }
757:
758: /**
759: * Sets the DublinCore module rights.
760: * <p>
761: * @param rights the list of String representing the DublinCore module
762: * rights to set, an empty list or <b>null</b> if none.
763: *
764: */
765: public void setRightsList(List rights) {
766: _rights = rights;
767: }
768:
769: /**
770: * Gets the DublinCore module rights. Convenience method that can be used
771: * to obtain the first item, <b>null</b> if none.
772: * <p>
773: * @return the first DublinCore module rights, <b>null</b> if none.
774: */
775: public String getRights() {
776: return ((_rights != null) && (_rights.size() > 0)) ? (String) _rights
777: .get(0)
778: : null;
779: }
780:
781: /**
782: * Sets the DublinCore module rights. Convenience method that can be used
783: * when there is only one rights to set.
784: * <p>
785: * @param rights the DublinCore module rights to set, <b>null</b> if none.
786: *
787: */
788: public void setRights(String rights) {
789: _rights = new ArrayList();
790: _rights.add(rights);
791: }
792:
793: /**
794: * Creates a deep 'bean' clone of the object.
795: * <p>
796: * @return a clone of the object.
797: * @throws CloneNotSupportedException thrown if an element of the object cannot be cloned.
798: *
799: */
800: public final Object clone() throws CloneNotSupportedException {
801: return _objBean.clone();
802: }
803:
804: /**
805: * Indicates whether some other object is "equal to" this one as defined by the Object equals() method.
806: * <p>
807: * @param other he reference object with which to compare.
808: * @return <b>true</b> if 'this' object is equal to the 'other' object.
809: *
810: */
811: public final boolean equals(Object other) {
812: return _objBean.equals(other);
813: }
814:
815: /**
816: * Returns a hashcode value for the object.
817: * <p>
818: * It follows the contract defined by the Object hashCode() method.
819: * <p>
820: * @return the hashcode of the bean object.
821: *
822: */
823: public final int hashCode() {
824: return _objBean.hashCode();
825: }
826:
827: /**
828: * Returns the String representation for the object.
829: * <p>
830: * @return String representation for the object.
831: *
832: */
833: public final String toString() {
834: return _objBean.toString();
835: }
836:
837: public final Class getInterface() {
838: return DCModule.class;
839: }
840:
841: public final void copyFrom(Object obj) {
842: COPY_FROM_HELPER.copy(this , obj);
843: }
844:
845: private static final CopyFromHelper COPY_FROM_HELPER;
846:
847: static {
848: Map basePropInterfaceMap = new HashMap();
849: basePropInterfaceMap.put("titles", String.class);
850: basePropInterfaceMap.put("creators", String.class);
851: basePropInterfaceMap.put("subjects", DCSubject.class);
852: basePropInterfaceMap.put("descriptions", String.class);
853: basePropInterfaceMap.put("publishers", String.class);
854: basePropInterfaceMap.put("contributors", String.class);
855: basePropInterfaceMap.put("dates", Date.class);
856: basePropInterfaceMap.put("types", String.class);
857: basePropInterfaceMap.put("formats", String.class);
858: basePropInterfaceMap.put("identifiers", String.class);
859: basePropInterfaceMap.put("sources", String.class);
860: basePropInterfaceMap.put("languages", String.class);
861: basePropInterfaceMap.put("relations", String.class);
862: basePropInterfaceMap.put("coverages", String.class);
863: basePropInterfaceMap.put("rightsList", String.class);
864:
865: Map basePropClassImplMap = new HashMap();
866: basePropClassImplMap.put(DCSubject.class, DCSubjectImpl.class);
867:
868: COPY_FROM_HELPER = new CopyFromHelper(DCModule.class,
869: basePropInterfaceMap, basePropClassImplMap);
870: }
871: }
|