diff --git a/src/main/java/net/fortuna/ical4j/model/component/Participant.java b/src/main/java/net/fortuna/ical4j/model/component/Participant.java index 046a8bf30..75f2a7c03 100644 --- a/src/main/java/net/fortuna/ical4j/model/component/Participant.java +++ b/src/main/java/net/fortuna/ical4j/model/component/Participant.java @@ -38,6 +38,7 @@ import net.fortuna.ical4j.validate.ValidationRule; import net.fortuna.ical4j.validate.Validator; +import java.util.List; import java.util.Optional; import static net.fortuna.ical4j.model.Property.*; @@ -164,6 +165,10 @@ public final void validate(final boolean recurse) throws ValidationException { } } + public List getComponents() { + return ComponentContainer.super.getComponents(); + } + /** * * @return Returns the underlying component list. diff --git a/src/main/java/net/fortuna/ical4j/model/component/VEvent.java b/src/main/java/net/fortuna/ical4j/model/component/VEvent.java index 02bf6c28a..dbd72d0b4 100644 --- a/src/main/java/net/fortuna/ical4j/model/component/VEvent.java +++ b/src/main/java/net/fortuna/ical4j/model/component/VEvent.java @@ -326,6 +326,18 @@ public final List getAlarms() { return getComponents(); } + public final List getParticipants() { + return getComponents(Component.PARTICIPANT); + } + + public final List getLocations() { + return getComponents(Component.VLOCATION); + } + + public final List getResources() { + return getComponents(Component.VRESOURCE); + } + /** * * @return Returns the underlying component list. diff --git a/src/main/java/net/fortuna/ical4j/model/component/VFreeBusy.java b/src/main/java/net/fortuna/ical4j/model/component/VFreeBusy.java index da3eb6ecc..b448f6711 100644 --- a/src/main/java/net/fortuna/ical4j/model/component/VFreeBusy.java +++ b/src/main/java/net/fortuna/ical4j/model/component/VFreeBusy.java @@ -514,6 +514,18 @@ public void validate(Method method) throws ValidationException { } } + public final List getParticipants() { + return getComponents(Component.PARTICIPANT); + } + + public final List getLocations() { + return getComponents(Component.VLOCATION); + } + + public final List getResources() { + return getComponents(Component.VRESOURCE); + } + /** * * @return Returns the underlying component list. diff --git a/src/main/java/net/fortuna/ical4j/model/component/VJournal.java b/src/main/java/net/fortuna/ical4j/model/component/VJournal.java index 2cca89c3d..98c8e6b23 100644 --- a/src/main/java/net/fortuna/ical4j/model/component/VJournal.java +++ b/src/main/java/net/fortuna/ical4j/model/component/VJournal.java @@ -41,6 +41,7 @@ import java.time.temporal.Temporal; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Optional; @@ -191,6 +192,18 @@ public void validate(Method method) throws ValidationException { } } + public final List getParticipants() { + return getComponents(Component.PARTICIPANT); + } + + public final List getLocations() { + return getComponents(Component.VLOCATION); + } + + public final List getResources() { + return getComponents(Component.VRESOURCE); + } + /** * * @return Returns the underlying component list. diff --git a/src/main/java/net/fortuna/ical4j/model/component/VTimeZone.java b/src/main/java/net/fortuna/ical4j/model/component/VTimeZone.java index 6a3cbcc16..6f6876389 100644 --- a/src/main/java/net/fortuna/ical4j/model/component/VTimeZone.java +++ b/src/main/java/net/fortuna/ical4j/model/component/VTimeZone.java @@ -189,8 +189,7 @@ public void validate(Method method) throws ValidationException { * @return Returns the types. */ public final List getObservances() { - return (List) components.get(Observance.STANDARD, - Observance.DAYLIGHT); + return getComponents(); } /** diff --git a/src/main/java/net/fortuna/ical4j/model/component/VToDo.java b/src/main/java/net/fortuna/ical4j/model/component/VToDo.java index 4520fe805..97c759dfb 100644 --- a/src/main/java/net/fortuna/ical4j/model/component/VToDo.java +++ b/src/main/java/net/fortuna/ical4j/model/component/VToDo.java @@ -42,10 +42,7 @@ import java.time.temporal.Temporal; import java.time.temporal.TemporalAmount; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import static net.fortuna.ical4j.model.Property.*; import static net.fortuna.ical4j.validate.ValidationRule.ValidationType.*; @@ -240,11 +237,21 @@ public VToDo(final Temporal start, final TemporalAmount duration, final String s /** * Returns the list of alarms for this todo. * @return a component list - * @deprecated use {@link VToDo#getComponents()} to avoid potential {@link ClassCastException} */ - @Deprecated - public final ComponentList getAlarms() { - return (ComponentList) components; + public final List getAlarms() { + return getComponents(Component.VALARM); + } + + public final List getParticipants() { + return getComponents(Component.PARTICIPANT); + } + + public final List getLocations() { + return getComponents(Component.VLOCATION); + } + + public final List getResources() { + return getComponents(Component.VRESOURCE); } /** diff --git a/src/main/java/net/fortuna/ical4j/validate/component/VEventValidator.java b/src/main/java/net/fortuna/ical4j/validate/component/VEventValidator.java index e5c9f226f..fc0f25606 100644 --- a/src/main/java/net/fortuna/ical4j/validate/component/VEventValidator.java +++ b/src/main/java/net/fortuna/ical4j/validate/component/VEventValidator.java @@ -1,7 +1,6 @@ package net.fortuna.ical4j.validate.component; import net.fortuna.ical4j.model.Component; -import net.fortuna.ical4j.model.component.VAlarm; import net.fortuna.ical4j.model.component.VEvent; import net.fortuna.ical4j.validate.ComponentValidator; import net.fortuna.ical4j.validate.ContentValidator; @@ -28,7 +27,7 @@ public void validate(VEvent target) throws ValidationException { super.validate(target); if (alarmsAllowed) { - target.getComponents(Component.VALARM).forEach(a -> ComponentValidator.VALARM_ITIP.validate((VAlarm) a)); + target.getAlarms().forEach(a -> ComponentValidator.VALARM_ITIP.validate(a)); } else { ContentValidator.assertNone(Component.VALARM, target.getAlarms(), false); } diff --git a/src/main/java/net/fortuna/ical4j/validate/component/VToDoValidator.java b/src/main/java/net/fortuna/ical4j/validate/component/VToDoValidator.java index c144f1f95..9ab1c3cb7 100644 --- a/src/main/java/net/fortuna/ical4j/validate/component/VToDoValidator.java +++ b/src/main/java/net/fortuna/ical4j/validate/component/VToDoValidator.java @@ -2,10 +2,10 @@ import net.fortuna.ical4j.model.Component; import net.fortuna.ical4j.model.Property; -import net.fortuna.ical4j.model.component.VAlarm; import net.fortuna.ical4j.model.component.VToDo; import net.fortuna.ical4j.model.property.Status; import net.fortuna.ical4j.validate.ComponentValidator; +import net.fortuna.ical4j.validate.ContentValidator; import net.fortuna.ical4j.validate.ValidationException; import net.fortuna.ical4j.validate.ValidationRule; @@ -39,9 +39,9 @@ public void validate(VToDo target) throws ValidationException { } if (alarmsAllowed) { - target.getComponents(Component.VALARM).forEach(a -> ComponentValidator.VALARM_ITIP.validate((VAlarm) a)); + target.getAlarms().forEach(a -> ComponentValidator.VALARM_ITIP.validate(a)); } else { - ComponentValidator.assertNone(Component.VALARM, target.getAlarms()); + ContentValidator.assertNone(Component.VALARM, target.getAlarms(), false); } } } diff --git a/src/test/groovy/net/fortuna/ical4j/model/component/ParticipantFactoryTest.groovy b/src/test/groovy/net/fortuna/ical4j/model/component/ParticipantFactoryTest.groovy index 72393c6e4..70714c1e1 100644 --- a/src/test/groovy/net/fortuna/ical4j/model/component/ParticipantFactoryTest.groovy +++ b/src/test/groovy/net/fortuna/ical4j/model/component/ParticipantFactoryTest.groovy @@ -21,9 +21,9 @@ class ParticipantFactoryTest extends Specification { } then: 'result is as expected' - participant.properties.uid[0].value == '1' - participant.getComponents().size() == 2 - participant.getComponents()[0].properties.uid[0].value == '11' - participant.getComponents()[1].properties.uid[0].value == '12' + participant.getProperties('uid')[0].value == '1' + participant.components.size() == 2 + participant.components[0].propertyList.uid[0].value == '11' + participant.components[1].propertyList.uid[0].value == '12' } } diff --git a/src/test/groovy/net/fortuna/ical4j/model/component/VAvailabilityFactoryTest.groovy b/src/test/groovy/net/fortuna/ical4j/model/component/VAvailabilityFactoryTest.groovy index 17ce4870b..41c34059e 100644 --- a/src/test/groovy/net/fortuna/ical4j/model/component/VAvailabilityFactoryTest.groovy +++ b/src/test/groovy/net/fortuna/ical4j/model/component/VAvailabilityFactoryTest.groovy @@ -18,8 +18,8 @@ class VAvailabilityFactoryTest extends Specification { } then: 'result is as expected' - availability.properties.uid[0].value == '1' + availability.propertyList.uid[0].value == '1' availability.getComponents().size() == 1 - availability.getComponents()[0].properties.uid[0].value == '11' + availability.getComponents()[0].propertyList.uid[0].value == '11' } } diff --git a/src/test/groovy/net/fortuna/ical4j/model/component/VLocationFactoryTest.groovy b/src/test/groovy/net/fortuna/ical4j/model/component/VLocationFactoryTest.groovy index 165379f6d..a838529c2 100644 --- a/src/test/groovy/net/fortuna/ical4j/model/component/VLocationFactoryTest.groovy +++ b/src/test/groovy/net/fortuna/ical4j/model/component/VLocationFactoryTest.groovy @@ -15,6 +15,6 @@ class VLocationFactoryTest extends Specification { } then: 'result is as expected' - location.properties.uid[0].value == '1' + location.propertyList.uid[0].value == '1' } } diff --git a/src/test/groovy/net/fortuna/ical4j/model/component/VResourceFactoryTest.groovy b/src/test/groovy/net/fortuna/ical4j/model/component/VResourceFactoryTest.groovy index 1a1591c60..81570e378 100644 --- a/src/test/groovy/net/fortuna/ical4j/model/component/VResourceFactoryTest.groovy +++ b/src/test/groovy/net/fortuna/ical4j/model/component/VResourceFactoryTest.groovy @@ -15,6 +15,6 @@ class VResourceFactoryTest extends Specification { } then: 'result is as expected' - resource.properties.uid[0].value == '1' + resource.propertyList.uid[0].value == '1' } } diff --git a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByDayRuleTest.groovy b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByDayRuleTest.groovy index 69cbbd70e..0b8349cb0 100644 --- a/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByDayRuleTest.groovy +++ b/src/test/groovy/net/fortuna/ical4j/transform/recurrence/ByDayRuleTest.groovy @@ -97,7 +97,7 @@ class ByDayRuleTest extends Specification { TemporalAdapter to = TemporalAdapter.parse("20210107T070000Z") Period period = new Period(from.temporal, to.temporal); - for (Component c : calendar.getComponents("VEVENT")) { + for (Component c : calendar.getComponents(Component.VEVENT)) { PeriodList list = c.calculateRecurrenceSet(period); for (Object po : list) { System.out.println((Period) po);