src/net/fortuna/ical4j/model/property/Status.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.

     1 /**
     2  * Copyright (c) 2012, Ben Fortuna
     3  * All rights reserved.
     4  *
     5  * Redistribution and use in source and binary forms, with or without
     6  * modification, are permitted provided that the following conditions
     7  * are met:
     8  *
     9  *  o Redistributions of source code must retain the above copyright
    10  * notice, this list of conditions and the following disclaimer.
    11  *
    12  *  o Redistributions in binary form must reproduce the above copyright
    13  * notice, this list of conditions and the following disclaimer in the
    14  * documentation and/or other materials provided with the distribution.
    15  *
    16  *  o Neither the name of Ben Fortuna nor the names of any other contributors
    17  * may be used to endorse or promote products derived from this software
    18  * without specific prior written permission.
    19  *
    20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    28  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    29  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    31  */
    32 package net.fortuna.ical4j.model.property;
    34 import net.fortuna.ical4j.model.ParameterList;
    35 import net.fortuna.ical4j.model.Property;
    36 import net.fortuna.ical4j.model.PropertyFactoryImpl;
    37 import net.fortuna.ical4j.model.ValidationException;
    39 /**
    40  * $Id$
    41  * 
    42  * Created: [Apr 6, 2004]
    43  *
    44  * Defines a STATUS iCalendar component property.
    45  * 
    46  * <pre>
    47  *     4.8.1.11 Status
    48  *     
    49  *        Property Name: STATUS
    50  *     
    51  *        Purpose: This property defines the overall status or confirmation for
    52  *        the calendar component.
    53  *     
    54  *        Value Type: TEXT
    55  *     
    56  *        Property Parameters: Non-standard property parameters can be
    57  *        specified on this property.
    58  *     
    59  *        Conformance: This property can be specified in &quot;VEVENT&quot;, &quot;VTODO&quot; or
    60  *        &quot;VJOURNAL&quot; calendar components.
    61  *     
    62  *        Description: In a group scheduled calendar component, the property is
    63  *        used by the &quot;Organizer&quot; to provide a confirmation of the event to the
    64  *        &quot;Attendees&quot;. For example in a &quot;VEVENT&quot; calendar component, the
    65  *        &quot;Organizer&quot; can indicate that a meeting is tentative, confirmed or
    66  *        cancelled. In a &quot;VTODO&quot; calendar component, the &quot;Organizer&quot; can
    67  *        indicate that an action item needs action, is completed, is in
    68  *        process or being worked on, or has been cancelled. In a &quot;VJOURNAL&quot;
    69  *        calendar component, the &quot;Organizer&quot; can indicate that a journal entry
    70  *        is draft, final or has been cancelled or removed.
    71  *     
    72  *        Format Definition: The property is defined by the following notation:
    73  *     
    74  *          status     = &quot;STATUS&quot; statparam] &quot;:&quot; statvalue CRLF
    75  *     
    76  *          statparam  = *(&quot;;&quot; xparam)
    77  *     
    78  *          statvalue  = &quot;TENTATIVE&quot;           ;Indicates event is
    79  *                                             ;tentative.
    80  *                     / &quot;CONFIRMED&quot;           ;Indicates event is
    81  *                                             ;definite.
    82  *                     / &quot;CANCELLED&quot;           ;Indicates event was
    83  *                                             ;cancelled.
    84  *             ;Status values for a &quot;VEVENT&quot;
    85  *     
    86  *          statvalue  =/ &quot;NEEDS-ACTION&quot;       ;Indicates to-do needs action.
    87  *                     / &quot;COMPLETED&quot;           ;Indicates to-do completed.
    88  *                     / &quot;IN-PROCESS&quot;          ;Indicates to-do in process of
    89  *                     / &quot;CANCELLED&quot;           ;Indicates to-do was cancelled.
    90  *             ;Status values for &quot;VTODO&quot;.
    91  *     
    92  *          statvalue  =/ &quot;DRAFT&quot;              ;Indicates journal is draft.
    93  *                     / &quot;FINAL&quot;               ;Indicates journal is final.
    94  *                     / &quot;CANCELLED&quot;           ;Indicates journal is removed.
    95  *             ;Status values for &quot;VJOURNAL&quot;.
    96  *     
    97  *        Example: The following is an example of this property for a &quot;VEVENT&quot;
    98  *        calendar component:
    99  *     
   100  *          STATUS:TENTATIVE
   101  *     
   102  *        The following is an example of this property for a &quot;VTODO&quot; calendar
   103  *        component:
   104  *     
   105  *          STATUS:NEEDS-ACTION
   106  *     
   107  *        The following is an example of this property for a &quot;VJOURNAL&quot;
   108  *        calendar component:
   109  *     
   110  *          STATUS:DRAFT
   111  * </pre>
   112  * 
   113  * @author Ben Fortuna
   114  */
   115 public class Status extends Property {
   117     private static final long serialVersionUID = 7401102230299289898L;
   119     // Status values for a "VEVENT"
   120     /**
   121      * Tentative VEVENT status.
   122      */
   123     public static final Status VEVENT_TENTATIVE = new ImmutableStatus(
   124             "TENTATIVE");
   126     /**
   127      * Confirmed VEVENT status.
   128      */
   129     public static final Status VEVENT_CONFIRMED = new ImmutableStatus(
   130             "CONFIRMED");
   132     /**
   133      * Cancelled VEVENT status.
   134      */
   135     public static final Status VEVENT_CANCELLED = new ImmutableStatus(
   136             "CANCELLED");
   138     // Status values for "VTODO"
   139     /**
   140      * Tentative VTODO status.
   141      */
   142     public static final Status VTODO_NEEDS_ACTION = new ImmutableStatus(
   143             "NEEDS-ACTION");
   145     /**
   146      * Completed VTODO status.
   147      */
   148     public static final Status VTODO_COMPLETED = new ImmutableStatus(
   149             "COMPLETED");
   151     /**
   152      * In-process VTODO status.
   153      */
   154     public static final Status VTODO_IN_PROCESS = new ImmutableStatus(
   155             "IN-PROCESS");
   157     /**
   158      * Cancelled VTODO status.
   159      */
   160     public static final Status VTODO_CANCELLED = new ImmutableStatus(
   161             "CANCELLED");
   163     // Status values for "VJOURNAL"
   164     /**
   165      * Draft VJOURNAL status.
   166      */
   167     public static final Status VJOURNAL_DRAFT = new ImmutableStatus("DRAFT");
   169     /**
   170      * Final VJOURNAL status.
   171      */
   172     public static final Status VJOURNAL_FINAL = new ImmutableStatus("FINAL");
   174     /**
   175      * Cancelled VJOURNAL status.
   176      */
   177     public static final Status VJOURNAL_CANCELLED = new ImmutableStatus(
   178             "CANCELLED");
   180     /**
   181      * @author Ben Fortuna An immutable instance of Status.
   182      */
   183     private static final class ImmutableStatus extends Status {
   185         private static final long serialVersionUID = 7771868877237685612L;
   187         private ImmutableStatus(final String value) {
   188             super(new ParameterList(true), value);
   189         }
   191         public void setValue(final String aValue) {
   192             throw new UnsupportedOperationException(
   193                     "Cannot modify constant instances");
   194         }
   195     }
   197     private String value;
   199     /**
   200      * Default constructor.
   201      */
   202     public Status() {
   203         super(STATUS, PropertyFactoryImpl.getInstance());
   204     }
   206     /**
   207      * @param aValue a value string for this component
   208      */
   209     public Status(final String aValue) {
   210         super(STATUS, PropertyFactoryImpl.getInstance());
   211         this.value = aValue;
   212     }
   214     /**
   215      * @param aList a list of parameters for this component
   216      * @param aValue a value string for this component
   217      */
   218     public Status(final ParameterList aList, final String aValue) {
   219         super(STATUS, aList, PropertyFactoryImpl.getInstance());
   220         this.value = aValue;
   221     }
   223     /**
   224      * {@inheritDoc}
   225      */
   226     public void setValue(final String aValue) {
   227         this.value = aValue;
   228     }
   230     /**
   231      * {@inheritDoc}
   232      */
   233     public final String getValue() {
   234         return value;
   235     }
   237     /**
   238      * {@inheritDoc}
   239      */
   240     public final void validate() throws ValidationException {
   241         // TODO: Auto-generated method stub
   242     }
   243 }

mercurial