src/net/fortuna/ical4j/model/parameter/Range.java

Tue, 10 Feb 2015 18:12:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 10 Feb 2015 18:12:00 +0100
changeset 0
fb9019fb1bf7
permissions
-rw-r--r--

Import initial revisions of existing project AndroidCaldavSyncAdapater,
forked from upstream repository at 27e8a0f8495c92e0780d450bdf0c7cec77a03a55.

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.parameter;
michael@0 33
michael@0 34 import net.fortuna.ical4j.model.Parameter;
michael@0 35 import net.fortuna.ical4j.model.ParameterFactoryImpl;
michael@0 36 import net.fortuna.ical4j.util.CompatibilityHints;
michael@0 37 import net.fortuna.ical4j.util.Strings;
michael@0 38
michael@0 39 /**
michael@0 40 * $Id$ [18-Apr-2004]
michael@0 41 *
michael@0 42 * Defines a Recurrence Identifier Range parameter.
michael@0 43 * @author benfortuna
michael@0 44 */
michael@0 45 public class Range extends Parameter {
michael@0 46
michael@0 47 private static final long serialVersionUID = -3057531444558393776L;
michael@0 48
michael@0 49 private static final String VALUE_THISANDPRIOR = "THISANDPRIOR";
michael@0 50
michael@0 51 private static final String VALUE_THISANDFUTURE = "THISANDFUTURE";
michael@0 52
michael@0 53 /**
michael@0 54 * This and prior.
michael@0 55 */
michael@0 56 public static final Range THISANDPRIOR = new Range(VALUE_THISANDPRIOR);
michael@0 57
michael@0 58 /**
michael@0 59 * This and future.
michael@0 60 */
michael@0 61 public static final Range THISANDFUTURE = new Range(VALUE_THISANDFUTURE);
michael@0 62
michael@0 63 private String value;
michael@0 64
michael@0 65 /**
michael@0 66 * @param aValue a string representation of a recurrence identifier range
michael@0 67 */
michael@0 68 public Range(final String aValue) {
michael@0 69 super(RANGE, ParameterFactoryImpl.getInstance());
michael@0 70 this.value = Strings.unquote(aValue);
michael@0 71
michael@0 72 // allow arbitrary ranges for Lotus Notes..
michael@0 73 // eg. X-LOTUS-RECURID;RANGE=ALL:20101006T203000Z
michael@0 74
michael@0 75 if (!CompatibilityHints.isHintEnabled(CompatibilityHints.KEY_NOTES_COMPATIBILITY)) {
michael@0 76 // value must be one of finite list..
michael@0 77 if (!VALUE_THISANDPRIOR.equals(value)
michael@0 78 && !VALUE_THISANDFUTURE.equals(value)) {
michael@0 79 throw new IllegalArgumentException("Invalid value [" + value + "]");
michael@0 80 }
michael@0 81 }
michael@0 82 }
michael@0 83
michael@0 84 /**
michael@0 85 * {@inheritDoc}
michael@0 86 */
michael@0 87 public final String getValue() {
michael@0 88 return value;
michael@0 89 }
michael@0 90 }

mercurial