src/net/fortuna/ical4j/model/property/Attendee.java

Tue, 10 Feb 2015 19:58:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 10 Feb 2015 19:58:00 +0100
changeset 4
45d57ecba757
permissions
-rw-r--r--

Upgrade the upgraded ical4j component to use org.apache.commons.lang3.

michael@0 1 /**
michael@0 2 * Copyright (c) 2012, Ben Fortuna
michael@0 3 * All rights reserved.
michael@0 4 *
michael@0 5 * Redistribution and use in source and binary forms, with or without
michael@0 6 * modification, are permitted provided that the following conditions
michael@0 7 * are met:
michael@0 8 *
michael@0 9 * o Redistributions of source code must retain the above copyright
michael@0 10 * notice, this list of conditions and the following disclaimer.
michael@0 11 *
michael@0 12 * o Redistributions in binary form must reproduce the above copyright
michael@0 13 * notice, this list of conditions and the following disclaimer in the
michael@0 14 * documentation and/or other materials provided with the distribution.
michael@0 15 *
michael@0 16 * o Neither the name of Ben Fortuna nor the names of any other contributors
michael@0 17 * may be used to endorse or promote products derived from this software
michael@0 18 * without specific prior written permission.
michael@0 19 *
michael@0 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
michael@0 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
michael@0 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
michael@0 23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
michael@0 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
michael@0 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
michael@0 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
michael@0 27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
michael@0 28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
michael@0 29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
michael@0 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
michael@0 31 */
michael@0 32 package net.fortuna.ical4j.model.property;
michael@0 33
michael@0 34 import java.io.IOException;
michael@0 35 import java.net.URI;
michael@0 36 import java.net.URISyntaxException;
michael@0 37 import java.text.ParseException;
michael@0 38
michael@0 39 import net.fortuna.ical4j.model.Parameter;
michael@0 40 import net.fortuna.ical4j.model.ParameterList;
michael@0 41 import net.fortuna.ical4j.model.Property;
michael@0 42 import net.fortuna.ical4j.model.PropertyFactoryImpl;
michael@0 43 import net.fortuna.ical4j.model.ValidationException;
michael@0 44 import net.fortuna.ical4j.util.ParameterValidator;
michael@0 45 import net.fortuna.ical4j.util.Strings;
michael@0 46 import net.fortuna.ical4j.util.Uris;
michael@0 47
michael@0 48 /**
michael@0 49 * $Id$
michael@0 50 *
michael@0 51 * Created: [Apr 6, 2004]
michael@0 52 *
michael@0 53 * Defines an ATTENDEE iCalendar component property.
michael@0 54 * @author benf
michael@0 55 */
michael@0 56 public class Attendee extends Property {
michael@0 57
michael@0 58 private static final long serialVersionUID = 8430929418723298803L;
michael@0 59
michael@0 60 private URI calAddress;
michael@0 61
michael@0 62 /**
michael@0 63 * Default constructor.
michael@0 64 */
michael@0 65 public Attendee() {
michael@0 66 super(ATTENDEE, PropertyFactoryImpl.getInstance());
michael@0 67 }
michael@0 68
michael@0 69 /**
michael@0 70 * @param aValue a value string for this component
michael@0 71 * @throws URISyntaxException where the specified value string is not a valid uri
michael@0 72 */
michael@0 73 public Attendee(final String aValue) throws URISyntaxException {
michael@0 74 super(ATTENDEE, PropertyFactoryImpl.getInstance());
michael@0 75 setValue(aValue);
michael@0 76 }
michael@0 77
michael@0 78 /**
michael@0 79 * @param aList a list of parameters for this component
michael@0 80 * @param aValue a value string for this component
michael@0 81 * @throws URISyntaxException where the specified value string is not a valid uri
michael@0 82 */
michael@0 83 public Attendee(final ParameterList aList, final String aValue)
michael@0 84 throws URISyntaxException {
michael@0 85 super(ATTENDEE, aList, PropertyFactoryImpl.getInstance());
michael@0 86 setValue(aValue);
michael@0 87 }
michael@0 88
michael@0 89 /**
michael@0 90 * @param aUri a URI
michael@0 91 */
michael@0 92 public Attendee(final URI aUri) {
michael@0 93 super(ATTENDEE, PropertyFactoryImpl.getInstance());
michael@0 94 calAddress = aUri;
michael@0 95 }
michael@0 96
michael@0 97 /**
michael@0 98 * @param aList a list of parameters for this component
michael@0 99 * @param aUri a URI
michael@0 100 */
michael@0 101 public Attendee(final ParameterList aList, final URI aUri) {
michael@0 102 super(ATTENDEE, aList, PropertyFactoryImpl.getInstance());
michael@0 103 calAddress = aUri;
michael@0 104 }
michael@0 105
michael@0 106 /**
michael@0 107 * {@inheritDoc}
michael@0 108 */
michael@0 109 public final void setValue(final String aValue) throws URISyntaxException {
michael@0 110 calAddress = Uris.create(aValue);
michael@0 111 }
michael@0 112
michael@0 113 /**
michael@0 114 * {@inheritDoc}
michael@0 115 */
michael@0 116 public final void validate() throws ValidationException {
michael@0 117
michael@0 118 /*
michael@0 119 * ; the following are optional, ; but MUST NOT occur more than once (";" cutypeparam) / (";"memberparam) / (";"
michael@0 120 * roleparam) / (";" partstatparam) / (";" rsvpparam) / (";" deltoparam) / (";" delfromparam) / (";"
michael@0 121 * sentbyparam) / (";"cnparam) / (";" dirparam) / (";" languageparam) /
michael@0 122 */
michael@0 123 ParameterValidator.getInstance().assertOneOrLess(Parameter.CUTYPE,
michael@0 124 getParameters());
michael@0 125 ParameterValidator.getInstance().assertOneOrLess(Parameter.MEMBER,
michael@0 126 getParameters());
michael@0 127 ParameterValidator.getInstance().assertOneOrLess(Parameter.ROLE,
michael@0 128 getParameters());
michael@0 129 ParameterValidator.getInstance().assertOneOrLess(Parameter.PARTSTAT,
michael@0 130 getParameters());
michael@0 131 ParameterValidator.getInstance().assertOneOrLess(Parameter.RSVP,
michael@0 132 getParameters());
michael@0 133 ParameterValidator.getInstance().assertOneOrLess(
michael@0 134 Parameter.DELEGATED_TO, getParameters());
michael@0 135 ParameterValidator.getInstance().assertOneOrLess(
michael@0 136 Parameter.DELEGATED_FROM, getParameters());
michael@0 137 ParameterValidator.getInstance().assertOneOrLess(Parameter.SENT_BY,
michael@0 138 getParameters());
michael@0 139 ParameterValidator.getInstance().assertOneOrLess(Parameter.CN,
michael@0 140 getParameters());
michael@0 141 ParameterValidator.getInstance().assertOneOrLess(Parameter.DIR,
michael@0 142 getParameters());
michael@0 143 ParameterValidator.getInstance().assertOneOrLess(Parameter.LANGUAGE,
michael@0 144 getParameters());
michael@0 145
michael@0 146 /* scheduleagent and schedulestatus added for CalDAV scheduling
michael@0 147 */
michael@0 148 ParameterValidator.getInstance().assertOneOrLess(Parameter.SCHEDULE_AGENT,
michael@0 149 getParameters());
michael@0 150 ParameterValidator.getInstance().assertOneOrLess(Parameter.SCHEDULE_STATUS,
michael@0 151 getParameters());
michael@0 152 /*
michael@0 153 * ; the following is optional, ; and MAY occur more than once (";" xparam)
michael@0 154 */
michael@0 155 }
michael@0 156
michael@0 157 /**
michael@0 158 * @return Returns the calAddress.
michael@0 159 */
michael@0 160 public final URI getCalAddress() {
michael@0 161 return calAddress;
michael@0 162 }
michael@0 163
michael@0 164 /**
michael@0 165 * {@inheritDoc}
michael@0 166 */
michael@0 167 public final String getValue() {
michael@0 168 return Uris.decode(Strings.valueOf(getCalAddress()));
michael@0 169 }
michael@0 170
michael@0 171 /**
michael@0 172 * @param calAddress The calAddress to set.
michael@0 173 */
michael@0 174 public final void setCalAddress(final URI calAddress) {
michael@0 175 this.calAddress = calAddress;
michael@0 176 }
michael@0 177
michael@0 178 /**
michael@0 179 * {@inheritDoc}
michael@0 180 */
michael@0 181 public final Property copy() throws IOException, URISyntaxException, ParseException {
michael@0 182 // URI are immutable
michael@0 183 return new Attendee(new ParameterList(getParameters(), false), calAddress);
michael@0 184 }
michael@0 185 }

mercurial