package jfxtras.icalendarfx.properties; import java.util.List; import jfxtras.icalendarfx.VChild; import jfxtras.icalendarfx.VParent; import jfxtras.icalendarfx.parameters.NonStandardParameter; import jfxtras.icalendarfx.parameters.ValueParameter; import jfxtras.icalendarfx.properties.VPropertyBase; /** * top-level interface for all iCalendar properties * * @author David Bal * @see PropertyType - enum of all supported Properties * @see VPropertyBase * * @param <T> - type of value stored in Property */ public interface VProperty<T> extends VParent, VChild { /** * The value of the property. * * For example, in the below property: * LOCATION;LANGUAGE=en:Bob's house * The value is the String "Bob's house" * */ T getValue(); /** Set the value of the property */ void setValue(T value); /** * VALUE * Value Date Types * RFC 5545 iCalendar 3.2.10 page 29 * * To explicitly specify the value type format for a property value. * * Property value type. Optional if default type is used. * Example: * VALUE=DATE */ ValueParameter getValueType(); /** Set the value type */ void setValueType(ValueParameter value); /** * <h2>Non-Standard Parameters</h2> * * <p>x-param = x-name "=" param-value *("," param-value)<br> ; A non-standard, experimental parameter.</p> */ List<NonStandardParameter> getNonStandard(); void setNonStandard(List<NonStandardParameter> nonStandardParams); }