[iCal4j-commit] iCal4j/source/net/fortuna/ical4j/model PropertyFactoryRegistry.java, NONE, 1.1 Par
Brought to you by:
fortuna
Update of /cvsroot/ical4j/iCal4j/source/net/fortuna/ical4j/model In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv1418/source/net/fortuna/ical4j/model Modified Files: ParameterFactoryImpl.java AbstractContentFactory.java PropertyFactoryImpl.java Added Files: PropertyFactoryRegistry.java ParameterFactoryRegistry.java Log Message: Added support for extension property/parameter factories --- NEW FILE: PropertyFactoryRegistry.java --- /** * This file is part of Base Modules. * * Copyright (c) 2009, Ben Fortuna [fo...@mi...] * * Base Modules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Base Modules is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Base Modules. If not, see <http://www.gnu.org/licenses/>. */ package net.fortuna.ical4j.model; /** * @author fortuna * */ public class PropertyFactoryRegistry extends PropertyFactoryImpl { /** * @param name a non-standard property name * @param factory a factory for the non-standard property */ public void register(String name, PropertyFactory factory) { registerExtendedFactory(name, factory); } } Index: ParameterFactoryImpl.java =================================================================== RCS file: /cvsroot/ical4j/iCal4j/source/net/fortuna/ical4j/model/ParameterFactoryImpl.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** ParameterFactoryImpl.java 16 Sep 2009 14:16:46 -0000 1.16 --- ParameterFactoryImpl.java 30 Sep 2009 12:59:59 -0000 1.17 *************** *** 68,72 **** * @author Ben Fortuna */ ! public final class ParameterFactoryImpl extends AbstractContentFactory implements ParameterFactory { --- 68,72 ---- * @author Ben Fortuna */ ! public class ParameterFactoryImpl extends AbstractContentFactory implements ParameterFactory { *************** *** 76,103 **** * Constructor made private to prevent instantiation. */ ! private ParameterFactoryImpl() { ! factories.put(Parameter.ABBREV, createAbbrevFactory()); ! factories.put(Parameter.ALTREP, createAltRepFactory()); ! factories.put(Parameter.CN, createCnFactory()); ! factories.put(Parameter.CUTYPE, createCuTypeFactory()); ! factories.put(Parameter.DELEGATED_FROM, createDelegatedFromFactory()); ! factories.put(Parameter.DELEGATED_TO, createDelegatedToFactory()); ! factories.put(Parameter.DIR, createDirFactory()); ! factories.put(Parameter.ENCODING, createEncodingFactory()); ! factories.put(Parameter.FMTTYPE, createFmtTypeFactory()); ! factories.put(Parameter.FBTYPE, createFbTypeFactory()); ! factories.put(Parameter.LANGUAGE, createLanguageFactory()); ! factories.put(Parameter.MEMBER, createMemberFactory()); ! factories.put(Parameter.PARTSTAT, createPartStatFactory()); ! factories.put(Parameter.RANGE, createRangeFactory()); ! factories.put(Parameter.RELATED, createRelatedFactory()); ! factories.put(Parameter.RELTYPE, createRelTypeFactory()); ! factories.put(Parameter.ROLE, createRoleFactory()); ! factories.put(Parameter.RSVP, createRsvpFactory()); ! factories.put(Parameter.SENT_BY, createSentByFactory()); ! factories.put(Parameter.TYPE, createTypeFactory()); ! factories.put(Parameter.TZID, createTzIdFactory()); ! factories.put(Parameter.VALUE, createValueFactory()); ! factories.put(Parameter.VVENUE, createVvenueFactory()); } --- 76,103 ---- * Constructor made private to prevent instantiation. */ ! protected ParameterFactoryImpl() { ! registerDefaultFactory(Parameter.ABBREV, createAbbrevFactory()); ! registerDefaultFactory(Parameter.ALTREP, createAltRepFactory()); ! registerDefaultFactory(Parameter.CN, createCnFactory()); ! registerDefaultFactory(Parameter.CUTYPE, createCuTypeFactory()); ! registerDefaultFactory(Parameter.DELEGATED_FROM, createDelegatedFromFactory()); ! registerDefaultFactory(Parameter.DELEGATED_TO, createDelegatedToFactory()); ! registerDefaultFactory(Parameter.DIR, createDirFactory()); ! registerDefaultFactory(Parameter.ENCODING, createEncodingFactory()); ! registerDefaultFactory(Parameter.FMTTYPE, createFmtTypeFactory()); ! registerDefaultFactory(Parameter.FBTYPE, createFbTypeFactory()); ! registerDefaultFactory(Parameter.LANGUAGE, createLanguageFactory()); ! registerDefaultFactory(Parameter.MEMBER, createMemberFactory()); ! registerDefaultFactory(Parameter.PARTSTAT, createPartStatFactory()); ! registerDefaultFactory(Parameter.RANGE, createRangeFactory()); ! registerDefaultFactory(Parameter.RELATED, createRelatedFactory()); ! registerDefaultFactory(Parameter.RELTYPE, createRelTypeFactory()); ! registerDefaultFactory(Parameter.ROLE, createRoleFactory()); ! registerDefaultFactory(Parameter.RSVP, createRsvpFactory()); ! registerDefaultFactory(Parameter.SENT_BY, createSentByFactory()); ! registerDefaultFactory(Parameter.TYPE, createTypeFactory()); ! registerDefaultFactory(Parameter.TZID, createTzIdFactory()); ! registerDefaultFactory(Parameter.VALUE, createValueFactory()); ! registerDefaultFactory(Parameter.VVENUE, createVvenueFactory()); } *************** *** 562,566 **** public Parameter createParameter(final String name, final String value) throws URISyntaxException { ! final ParameterFactory factory = (ParameterFactory) factories.get(name); Parameter parameter = null; if (factory != null) { --- 562,566 ---- public Parameter createParameter(final String name, final String value) throws URISyntaxException { ! final ParameterFactory factory = (ParameterFactory) getFactory(name); Parameter parameter = null; if (factory != null) { Index: PropertyFactoryImpl.java =================================================================== RCS file: /cvsroot/ical4j/iCal4j/source/net/fortuna/ical4j/model/PropertyFactoryImpl.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** PropertyFactoryImpl.java 29 Jun 2009 09:59:42 -0000 1.18 --- PropertyFactoryImpl.java 30 Sep 2009 12:59:59 -0000 1.19 *************** *** 101,105 **** * @author Ben Fortuna */ ! public final class PropertyFactoryImpl extends AbstractContentFactory implements PropertyFactory { --- 101,105 ---- * @author Ben Fortuna */ ! public class PropertyFactoryImpl extends AbstractContentFactory implements PropertyFactory { *************** *** 109,170 **** * Constructor made private to prevent instantiation. */ ! private PropertyFactoryImpl() { ! factories.put(Property.ACTION, createActionFactory()); ! factories.put(Property.ATTACH, createAttachFactory()); ! factories.put(Property.ATTENDEE, createAttendeeFactory()); ! factories.put(Property.CALSCALE, createCalScaleFactory()); ! factories.put(Property.CATEGORIES, createCategoriesFactory()); ! factories.put(Property.CLASS, createClazzFactory()); ! factories.put(Property.COMMENT, createCommentFactory()); ! factories.put(Property.COMPLETED, createCompletedFactory()); ! factories.put(Property.CONTACT, createContactFactory()); ! factories.put(Property.COUNTRY, createCountryFactory()); ! factories.put(Property.CREATED, createCreatedFactory()); ! factories.put(Property.DESCRIPTION, createDescriptionFactory()); ! factories.put(Property.DTEND, createDtEndFactory()); ! factories.put(Property.DTSTAMP, createDtStampFactory()); ! factories.put(Property.DTSTART, createDtStartFactory()); ! factories.put(Property.DUE, createDueFactory()); ! factories.put(Property.DURATION, createDurationFactory()); ! factories.put(Property.EXDATE, createExDateFactory()); ! factories.put(Property.EXRULE, createExRuleFactory()); ! factories.put(Property.EXTENDED_ADDRESS, createExtendedAddressFactory()); ! factories.put(Property.FREEBUSY, createFreeBusyFactory()); ! factories.put(Property.GEO, createGeoFactory()); ! factories.put(Property.LAST_MODIFIED, createLastModifiedFactory()); ! factories.put(Property.LOCALITY, createLocalityFactory()); ! factories.put(Property.LOCATION, createLocationFactory()); ! factories.put(Property.LOCATION_TYPE, createLocationTypeFactory()); ! factories.put(Property.METHOD, createMethodFactory()); ! factories.put(Property.NAME, createNameFactory()); ! factories.put(Property.ORGANIZER, createOrganizerFactory()); ! factories ! .put(Property.PERCENT_COMPLETE, createPercentCompleteFactory()); ! factories.put(Property.POSTALCODE, createPostalcodeFactory()); ! factories.put(Property.PRIORITY, createPriorityFactory()); ! factories.put(Property.PRODID, createProdIdFactory()); ! factories.put(Property.RDATE, createRDateFactory()); ! factories.put(Property.RECURRENCE_ID, createRecurrenceIdFactory()); ! factories.put(Property.REGION, createRegionFactory()); ! factories.put(Property.RELATED_TO, createRelatedToFactory()); ! factories.put(Property.REPEAT, createRepeatFactory()); ! factories.put(Property.REQUEST_STATUS, createRequestStatusFactory()); ! factories.put(Property.RESOURCES, createResourcesFactory()); ! factories.put(Property.RRULE, createRRuleFactory()); ! factories.put(Property.SEQUENCE, createSequenceFactory()); ! factories.put(Property.STATUS, createStatusFactory()); ! factories.put(Property.STREET_ADDRESS, createStreetAddressFactory()); ! factories.put(Property.SUMMARY, createSummaryFactory()); ! factories.put(Property.TEL, createTelFactory()); ! factories.put(Property.TRANSP, createTranspFactory()); ! factories.put(Property.TRIGGER, createTriggerFactory()); ! factories.put(Property.TZID, createTzIdFactory()); ! factories.put(Property.TZNAME, createTzNameFactory()); ! factories.put(Property.TZOFFSETFROM, createTzOffsetFromFactory()); ! factories.put(Property.TZOFFSETTO, createTzOffsetToFactory()); ! factories.put(Property.TZURL, createTzUrlFactory()); ! factories.put(Property.UID, createUidFactory()); ! factories.put(Property.URL, createUrlFactory()); ! factories.put(Property.VERSION, createVersionFactory()); } --- 109,169 ---- * Constructor made private to prevent instantiation. */ ! protected PropertyFactoryImpl() { ! registerDefaultFactory(Property.ACTION, createActionFactory()); ! registerDefaultFactory(Property.ATTACH, createAttachFactory()); ! registerDefaultFactory(Property.ATTENDEE, createAttendeeFactory()); ! registerDefaultFactory(Property.CALSCALE, createCalScaleFactory()); ! registerDefaultFactory(Property.CATEGORIES, createCategoriesFactory()); ! registerDefaultFactory(Property.CLASS, createClazzFactory()); ! registerDefaultFactory(Property.COMMENT, createCommentFactory()); ! registerDefaultFactory(Property.COMPLETED, createCompletedFactory()); ! registerDefaultFactory(Property.CONTACT, createContactFactory()); ! registerDefaultFactory(Property.COUNTRY, createCountryFactory()); ! registerDefaultFactory(Property.CREATED, createCreatedFactory()); ! registerDefaultFactory(Property.DESCRIPTION, createDescriptionFactory()); ! registerDefaultFactory(Property.DTEND, createDtEndFactory()); ! registerDefaultFactory(Property.DTSTAMP, createDtStampFactory()); ! registerDefaultFactory(Property.DTSTART, createDtStartFactory()); ! registerDefaultFactory(Property.DUE, createDueFactory()); ! registerDefaultFactory(Property.DURATION, createDurationFactory()); ! registerDefaultFactory(Property.EXDATE, createExDateFactory()); ! registerDefaultFactory(Property.EXRULE, createExRuleFactory()); ! registerDefaultFactory(Property.EXTENDED_ADDRESS, createExtendedAddressFactory()); ! registerDefaultFactory(Property.FREEBUSY, createFreeBusyFactory()); ! registerDefaultFactory(Property.GEO, createGeoFactory()); ! registerDefaultFactory(Property.LAST_MODIFIED, createLastModifiedFactory()); ! registerDefaultFactory(Property.LOCALITY, createLocalityFactory()); ! registerDefaultFactory(Property.LOCATION, createLocationFactory()); ! registerDefaultFactory(Property.LOCATION_TYPE, createLocationTypeFactory()); ! registerDefaultFactory(Property.METHOD, createMethodFactory()); ! registerDefaultFactory(Property.NAME, createNameFactory()); ! registerDefaultFactory(Property.ORGANIZER, createOrganizerFactory()); ! registerDefaultFactory(Property.PERCENT_COMPLETE, createPercentCompleteFactory()); ! registerDefaultFactory(Property.POSTALCODE, createPostalcodeFactory()); ! registerDefaultFactory(Property.PRIORITY, createPriorityFactory()); ! registerDefaultFactory(Property.PRODID, createProdIdFactory()); ! registerDefaultFactory(Property.RDATE, createRDateFactory()); ! registerDefaultFactory(Property.RECURRENCE_ID, createRecurrenceIdFactory()); ! registerDefaultFactory(Property.REGION, createRegionFactory()); ! registerDefaultFactory(Property.RELATED_TO, createRelatedToFactory()); ! registerDefaultFactory(Property.REPEAT, createRepeatFactory()); ! registerDefaultFactory(Property.REQUEST_STATUS, createRequestStatusFactory()); ! registerDefaultFactory(Property.RESOURCES, createResourcesFactory()); ! registerDefaultFactory(Property.RRULE, createRRuleFactory()); ! registerDefaultFactory(Property.SEQUENCE, createSequenceFactory()); ! registerDefaultFactory(Property.STATUS, createStatusFactory()); ! registerDefaultFactory(Property.STREET_ADDRESS, createStreetAddressFactory()); ! registerDefaultFactory(Property.SUMMARY, createSummaryFactory()); ! registerDefaultFactory(Property.TEL, createTelFactory()); ! registerDefaultFactory(Property.TRANSP, createTranspFactory()); ! registerDefaultFactory(Property.TRIGGER, createTriggerFactory()); ! registerDefaultFactory(Property.TZID, createTzIdFactory()); ! registerDefaultFactory(Property.TZNAME, createTzNameFactory()); ! registerDefaultFactory(Property.TZOFFSETFROM, createTzOffsetFromFactory()); ! registerDefaultFactory(Property.TZOFFSETTO, createTzOffsetToFactory()); ! registerDefaultFactory(Property.TZURL, createTzUrlFactory()); ! registerDefaultFactory(Property.UID, createUidFactory()); ! registerDefaultFactory(Property.URL, createUrlFactory()); ! registerDefaultFactory(Property.VERSION, createVersionFactory()); } *************** *** 1023,1027 **** */ public Property createProperty(final String name) { ! final PropertyFactory factory = (PropertyFactory) factories.get(name); if (factory != null) { return factory.createProperty(name); --- 1022,1026 ---- */ public Property createProperty(final String name) { ! final PropertyFactory factory = (PropertyFactory) getFactory(name); if (factory != null) { return factory.createProperty(name); *************** *** 1046,1050 **** throws IOException, URISyntaxException, ParseException { ! final PropertyFactory factory = (PropertyFactory) factories.get(name); if (factory != null) { return factory.createProperty(name, parameters, value); --- 1045,1049 ---- throws IOException, URISyntaxException, ParseException { ! final PropertyFactory factory = (PropertyFactory) getFactory(name); if (factory != null) { return factory.createProperty(name, parameters, value); Index: AbstractContentFactory.java =================================================================== RCS file: /cvsroot/ical4j/iCal4j/source/net/fortuna/ical4j/model/AbstractContentFactory.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** AbstractContentFactory.java 16 Jun 2009 10:52:00 -0000 1.5 --- AbstractContentFactory.java 30 Sep 2009 12:59:59 -0000 1.6 *************** *** 50,54 **** * Map of delegate factories. */ ! protected Map factories; /** --- 50,56 ---- * Map of delegate factories. */ ! private final Map defaultFactories; ! ! private final Map extendedFactories; /** *************** *** 56,63 **** */ public AbstractContentFactory() { ! factories = new HashMap(); } /** * @return true if non-standard names are allowed, otherwise false */ --- 58,88 ---- */ public AbstractContentFactory() { ! defaultFactories = new HashMap(); ! extendedFactories = new HashMap(); } /** + * Register a standard content factory. + */ + protected final void registerDefaultFactory(String key, Object factory) { + defaultFactories.put(key, factory); + } + + /** + * Register a non-standard content factory. + */ + protected final void registerExtendedFactory(String key, Object factory) { + extendedFactories.put(key, factory); + } + + protected final Object getFactory(String key) { + Object factory = defaultFactories.get(key); + if (factory == null) { + factory = extendedFactories.get(key); + } + return factory; + } + + /** * @return true if non-standard names are allowed, otherwise false */ --- NEW FILE: ParameterFactoryRegistry.java --- /** * This file is part of Base Modules. * * Copyright (c) 2009, Ben Fortuna [fo...@mi...] * * Base Modules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Base Modules is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Base Modules. If not, see <http://www.gnu.org/licenses/>. */ package net.fortuna.ical4j.model; /** * @author fortuna * */ public class ParameterFactoryRegistry extends ParameterFactoryImpl { /** * @param name a non-standard parameter name * @param factory a factory for the non-standard parameter */ public void register(String name, ParameterFactory factory) { registerExtendedFactory(name, factory); } } |