All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.fortuna.ical4j.validate.component.VJournalAddValidator Maven / Gradle / Ivy

package net.fortuna.ical4j.validate.component;

import net.fortuna.ical4j.model.Property;
import net.fortuna.ical4j.model.component.VJournal;
import net.fortuna.ical4j.validate.PropertyValidator;
import net.fortuna.ical4j.validate.ValidationException;
import net.fortuna.ical4j.validate.Validator;

import java.util.Arrays;

/**
 * 
 * Component/Property  Presence
 * ------------------- ----------------------------------------------
 * METHOD               1      MUST be "ADD"
 * VJOURNAL             1
 *     DESCRIPTION      1      Can be null.
 *     DTSTAMP          1
 *     DTSTART          1
 *     ORGANIZER        1
 *     SEQUENCE         1      MUST be greater than 0
 *     UID              1      MUST match that of the original journal
 *
 *     ATTACH           0+
 *     CATEGORIES       0 or 1 This property MAY contain a list of values
 *     CLASS            0 or 1
 *     COMMENT          0 or 1
 *     CONTACT          0+
 *     CREATED          0 or 1
 *     EXDATE           0+
 *     EXRULE           0+
 *     LAST-MODIFIED    0 or 1
 *     RDATE            0+
 *     RELATED-TO       0+
 *     RRULE            0+
 *     STATUS           0 or 1  MAY be one of DRAFT/FINAL/CANCELLED
 *     SUMMARY          0 or 1  Can be null
 *     URL              0 or 1
 *     X-PROPERTY       0+
 *
 *     ATTENDEE         0
 *     RECURRENCE-ID    0
 *
 * VALARM               0+
 * VTIMEZONE            0 or 1 MUST be present if any date/time refers to
 *                             a timezone
 * X-COMPONENT          0+
 *
 * VEVENT               0
 * VFREEBUSY            0
 * VTODO                0
 * 
* */ public class VJournalAddValidator implements Validator { private static final long serialVersionUID = 1L; public void validate(final VJournal target) throws ValidationException { Arrays.asList(Property.DESCRIPTION, Property.DTSTAMP, Property.DTSTART, Property.ORGANIZER, Property.SEQUENCE, Property.UID).forEach(property -> PropertyValidator.getInstance().assertOne(property, target.getProperties())); Arrays.asList(Property.CATEGORIES, Property.CLASS, Property.CREATED, Property.LAST_MODIFIED, Property.STATUS, Property.SUMMARY, Property.URL).forEach(property -> PropertyValidator.getInstance().assertOneOrLess(property, target.getProperties())); PropertyValidator.getInstance().assertNone(Property.ATTENDEE, target.getProperties()); PropertyValidator.getInstance().assertNone(Property.RECURRENCE_ID, target.getProperties()); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy