1 /* 2 * $Id: VFreeBusy.java [Apr 5, 2004] 3 * 4 * Copyright (c) 2004, Ben Fortuna 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * o Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 14 * o Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in the 16 * documentation and/or other materials provided with the distribution. 17 * 18 * o Neither the name of Ben Fortuna nor the names of any other contributors 19 * may be used to endorse or promote products derived from this software 20 * without specific prior written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 25 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 26 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 27 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 28 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 29 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 30 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 31 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 32 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33 */ 34 package net.fortuna.ical4j.model.component; 35 36 import net.fortuna.ical4j.model.Component; 37 import net.fortuna.ical4j.model.Property; 38 import net.fortuna.ical4j.model.PropertyList; 39 import net.fortuna.ical4j.model.ValidationException; 40 import net.fortuna.ical4j.util.PropertyValidator; 41 42 /*** 43 * Defines an iCalendar VFREEBUSY component. 44 * 45 * @author benf 46 */ 47 public class VFreeBusy extends Component { 48 49 /*** 50 * Constructor. 51 * @param aList a list of properties 52 */ 53 public VFreeBusy(final PropertyList aList) { 54 55 super(VFREEBUSY, aList); 56 } 57 58 59 /* (non-Javadoc) 60 * @see net.fortuna.ical4j.model.Component#validate(boolean) 61 */ 62 public final void validate(boolean recurse) throws ValidationException { 63 64 /* 65 ; the following are optional, 66 ; but MUST NOT occur more than once 67 68 contact / dtstart / dtend / duration / dtstamp / 69 organizer / uid / url / 70 */ 71 PropertyValidator.getInstance().validateOneOrLess(Property.CONTACT, 72 getProperties()); 73 PropertyValidator.getInstance().validateOneOrLess(Property.DTSTART, 74 getProperties()); 75 PropertyValidator.getInstance().validateOneOrLess(Property.DTEND, 76 getProperties()); 77 PropertyValidator.getInstance().validateOneOrLess(Property.DURATION, 78 getProperties()); 79 PropertyValidator.getInstance().validateOneOrLess(Property.DTSTAMP, 80 getProperties()); 81 PropertyValidator.getInstance().validateOneOrLess(Property.ORGANIZER, 82 getProperties()); 83 PropertyValidator.getInstance().validateOneOrLess(Property.UID, 84 getProperties()); 85 PropertyValidator.getInstance().validateOneOrLess(Property.URL, 86 getProperties()); 87 88 /* 89 90 ; the following are optional, 91 ; and MAY occur more than once 92 93 attendee / comment / freebusy / rstatus / x-prop 94 */ 95 96 if (recurse) { 97 validateProperties(); 98 } 99 } 100 }