Skip to content

Commit

Permalink
Add event pub (to be rfc9073) features to ical4j
Browse files Browse the repository at this point in the history
  • Loading branch information
douglm committed Jul 27, 2021
1 parent 376e044 commit a66d2cf
Show file tree
Hide file tree
Showing 23 changed files with 2,137 additions and 52 deletions.
Expand Up @@ -4,19 +4,49 @@
import net.fortuna.ical4j.model.ComponentFactory;
import net.fortuna.ical4j.model.component.*;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;

public class DefaultComponentFactorySupplier implements Supplier<List<ComponentFactory<? extends Component>>> {

@Override
public List<ComponentFactory<? extends Component>> get() {
List<ComponentFactory<?>> rfc5545 = Arrays.asList(new Available.Factory(), new Daylight.Factory(), new Standard.Factory(),
new VAlarm.Factory(), new VAvailability.Factory(), new VEvent.Factory(),
new VFreeBusy.Factory(), new VJournal.Factory(), new VTimeZone.Factory(),
new VToDo.Factory(), new VVenue.Factory());
final List<ComponentFactory<? extends Component>> rfc5545 =
Arrays.asList(
new Daylight.Factory(),
new Standard.Factory(),
new VAlarm.Factory(),
new VEvent.Factory(),
new VFreeBusy.Factory(),
new VJournal.Factory(),
new VTimeZone.Factory(),
new VToDo.Factory());

return rfc5545;
// Availability
final List<ComponentFactory<? extends Component>> rfc7953 =
Arrays.asList(
new Available.Factory(),
new VAvailability.Factory());

// Eventpub
final List<ComponentFactory<? extends Component>> rfc9073 =
Arrays.asList(
new Participant.Factory(),
new VLocation.Factory(),
new VResource.Factory());

final List<ComponentFactory<? extends Component>> vvenueDraft =
Collections.singletonList(new VVenue.Factory());

final List<ComponentFactory<? extends Component>> factories = new ArrayList<>(rfc5545);

factories.addAll(rfc7953);
factories.addAll(rfc9073);
factories.addAll(vvenueDraft);

return factories;
}
}
Expand Up @@ -6,35 +6,105 @@

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;

public class DefaultPropertyFactorySupplier implements Supplier<List<PropertyFactory<? extends Property>>> {

@Override
public List<PropertyFactory<? extends Property>> get() {
List<PropertyFactory<? extends Property>> rfc5545 = Arrays.asList(new Acknowledged.Factory(),
new Action.Factory(), new Attach.Factory(), new Attendee.Factory(), new BusyType.Factory(),
new CalScale.Factory(), new Categories.Factory(), new Clazz.Factory(), new Comment.Factory(),
new Completed.Factory(), new Contact.Factory(), new Country.Factory(), new Created.Factory(),
new Description.Factory(), new DtEnd.Factory(), new DtStamp.Factory(), new DtStart.Factory(),
new Due.Factory(), new Duration.Factory(), new ExDate.Factory(), new ExRule.Factory(),
new ExtendedAddress.Factory(), new FreeBusy.Factory(), new Geo.Factory(), new LastModified.Factory(),
new Locality.Factory(), new Location.Factory(), new LocationType.Factory(), new Method.Factory(),
new Name.Factory(), new Organizer.Factory(), new PercentComplete.Factory(), new Postalcode.Factory(),
new Priority.Factory(), new ProdId.Factory(), new RDate.Factory(), new RecurrenceId.Factory(),
new Region.Factory(), new RelatedTo.Factory(), new Repeat.Factory(), new RequestStatus.Factory(),
new Resources.Factory(), new RRule.Factory(), new Sequence.Factory(), new Status.Factory(),
new StreetAddress.Factory(), new Summary.Factory(), new Tel.Factory(), new Transp.Factory(),
new Trigger.Factory(), new TzId.Factory(), new TzName.Factory(), new TzOffsetFrom.Factory(),
new TzOffsetTo.Factory(), new TzUrl.Factory(), new Uid.Factory(), new Url.Factory(),
new Version.Factory());

List<PropertyFactory<? extends Property>> rfc7986 = Arrays.asList(new Color.Factory(), new Conference.Factory(), new Image.Factory(),
new RefreshInterval.Factory(), new Source.Factory());
List<PropertyFactory<? extends Property>> rfc5545 =
Arrays.asList(
new Acknowledged.Factory(),
new Action.Factory(),
new Attach.Factory(),
new Attendee.Factory(),
new CalScale.Factory(),
new Categories.Factory(),
new Clazz.Factory(),
new Comment.Factory(),
new Completed.Factory(),
new Contact.Factory(),
new Created.Factory(),
new Description.Factory(),
new DtEnd.Factory(),
new DtStamp.Factory(),
new DtStart.Factory(),
new Due.Factory(),
new Duration.Factory(),
new ExDate.Factory(),
new ExRule.Factory(),
new FreeBusy.Factory(),
new Geo.Factory(),
new LastModified.Factory(),
new Location.Factory(),
new Method.Factory(),
new Organizer.Factory(),
new PercentComplete.Factory(),
new Priority.Factory(),
new ProdId.Factory(),
new RDate.Factory(),
new RecurrenceId.Factory(),
new RelatedTo.Factory(),
new Repeat.Factory(),
new RequestStatus.Factory(),
new Resources.Factory(),
new RRule.Factory(),
new Sequence.Factory(),
new Status.Factory(),
new Summary.Factory(),
new Transp.Factory(),
new Trigger.Factory(),
new TzId.Factory(),
new TzName.Factory(),
new TzOffsetFrom.Factory(),
new TzOffsetTo.Factory(),
new TzUrl.Factory(),
new Uid.Factory(),
new Url.Factory(),
new Version.Factory());

// New properties
List<PropertyFactory<? extends Property>> rfc7986 =
Arrays.asList(
new Color.Factory(),
new Conference.Factory(),
new Image.Factory(),
new Name.Factory(),
new RefreshInterval.Factory(),
new Source.Factory());

List<PropertyFactory<? extends Property>> vvenue =
Arrays.asList(
new Country.Factory(),
new ExtendedAddress.Factory(),
new Locality.Factory(),
new Postalcode.Factory(),
new Region.Factory(),
new StreetAddress.Factory(),
new Tel.Factory()
);

// Availability
final List<PropertyFactory<? extends Property>> rfc7953 =
Collections.singletonList(new BusyType.Factory());

// Event pub
final List<PropertyFactory<? extends Property>> rfc9073 =
Arrays.asList(
new CalendarAddress.Factory(),
new LocationType.Factory(),
new ParticipantType.Factory(),
new ResourceType.Factory(),
new StructuredData.Factory(),
new StyledDescription.Factory());

List<PropertyFactory<? extends Property>> factories = new ArrayList<>(rfc5545);
factories.addAll(rfc7953);
factories.addAll(rfc7986);
factories.addAll(rfc9073);

return factories;
}
}
36 changes: 22 additions & 14 deletions src/main/java/net/fortuna/ical4j/model/Component.java
Expand Up @@ -31,6 +31,13 @@
*/
package net.fortuna.ical4j.model;

import net.fortuna.ical4j.model.parameter.Value;
import net.fortuna.ical4j.model.property.*;
import net.fortuna.ical4j.util.Strings;
import net.fortuna.ical4j.validate.ValidationException;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

import java.io.IOException;
import java.io.Serializable;
import java.net.URISyntaxException;
Expand All @@ -39,20 +46,6 @@
import java.util.List;
import java.util.stream.Collectors;

import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;

import net.fortuna.ical4j.model.parameter.Value;
import net.fortuna.ical4j.model.property.DateProperty;
import net.fortuna.ical4j.model.property.DtStart;
import net.fortuna.ical4j.model.property.Duration;
import net.fortuna.ical4j.model.property.ExDate;
import net.fortuna.ical4j.model.property.ExRule;
import net.fortuna.ical4j.model.property.RDate;
import net.fortuna.ical4j.model.property.RRule;
import net.fortuna.ical4j.util.Strings;
import net.fortuna.ical4j.validate.ValidationException;

/**
* $Id$ [Apr 5, 2004]
* <p/>
Expand All @@ -75,6 +68,21 @@ public abstract class Component implements Serializable {
*/
public static final String END = "END";

/**
* Component token.
*/
public static final String PARTICIPANT = "PARTICIPANT";

/**
* Component token.
*/
public static final String VLOCATION = "VLOCATION";

/**
* Component token.
*/
public static final String VRESOURCE = "VRESOURCE";

/**
* Component token.
*/
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/net/fortuna/ical4j/model/Parameter.java
Expand Up @@ -84,6 +84,11 @@ public abstract class Parameter extends Content {
*/
public static final String DELEGATED_TO = "DELEGATED-TO";

/**
* Derived.
*/
public static final String DERIVED = "DERIVED";

/**
* Directory entry.
*/
Expand Down Expand Up @@ -134,6 +139,11 @@ public abstract class Parameter extends Content {
*/
public static final String MEMBER = "MEMBER";

/**
* Order.
*/
public static final String ORDER = "ORDER";

/**
* Participation status.
*/
Expand Down Expand Up @@ -174,6 +184,11 @@ public abstract class Parameter extends Content {
*/
public static final String SCHEDULE_STATUS = "SCHEDULE-STATUS";

/**
* Schema for structured data.
*/
public static final String SCHEMA = "SCHEMA";

/**
* Sent by.
*/
Expand Down
39 changes: 33 additions & 6 deletions src/main/java/net/fortuna/ical4j/model/Property.java
Expand Up @@ -288,6 +288,11 @@ public abstract class Property extends Content {
*/
public static final String RELATED_TO = "RELATED-TO";

/**
* Resource type property name.
*/
public static final String RESOURCE_TYPE = "RESOURCE-TYPE";

/**
* Resources property name.
*/
Expand Down Expand Up @@ -323,11 +328,6 @@ public abstract class Property extends Content {
*/
public static final String LOCALITY = "LOCALITY";

/**
* VVENUE location type property name.
*/
public static final String LOCATION_TYPE = "LOCATION-TYPE";

/**
* VVENUE name property name.
*/
Expand Down Expand Up @@ -357,7 +357,34 @@ public abstract class Property extends Content {
* Acknowledged Property taken from http://tools.ietf.org/html/draft-daboo-valarm-extensions-04
*/
public static final String ACKNOWLEDGED = "ACKNOWLEDGED";


/* Event publication properties */

/**
* Participant cua property name.
*/
public static final String CALENDAR_ADDRESS = "CALENDAR-ADDRESS";

/**
* Location type property name.
*/
public static final String LOCATION_TYPE = "LOCATION-TYPE";

/**
* Participant type.
*/
public static final String PARTICIPANT_TYPE = "PARTICIPANT-TYPE";

/**
* Structured data property name.
*/
public static final String STRUCTURED_DATA = "STRUCTURED-DATA";

/**
* Styled description property name.
*/
public static final String STYLED_DESCRIPTION = "STYLED-DESCRIPTION";

private final String name;

private final ParameterList parameters;
Expand Down

0 comments on commit a66d2cf

Please sign in to comment.