Home | History | Annotate | Download | only in options
      1 // =================================================================================================
      2 // ADOBE SYSTEMS INCORPORATED
      3 // Copyright 2006 Adobe Systems Incorporated
      4 // All Rights Reserved
      5 //
      6 // NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the terms
      7 // of the Adobe license agreement accompanying it.
      8 // =================================================================================================
      9 
     10 package com.adobe.xmp.options;
     11 
     12 import com.adobe.xmp.XMPException;
     13 
     14 
     15 /**
     16  * Options for XMPSchemaRegistryImpl#registerAlias.
     17  *
     18  * @since 20.02.2006
     19  */
     20 public final class AliasOptions extends Options
     21 {
     22 	/** This is a direct mapping. The actual data type does not matter. */
     23 	public static final int PROP_DIRECT = 0;
     24 	/** The actual is an unordered array, the alias is to the first element of the array. */
     25 	public static final int PROP_ARRAY = PropertyOptions.ARRAY;
     26 	/** The actual is an ordered array, the alias is to the first element of the array. */
     27 	public static final int PROP_ARRAY_ORDERED = PropertyOptions.ARRAY_ORDERED;
     28 	/** The actual is an alternate array, the alias is to the first element of the array. */
     29 	public static final int PROP_ARRAY_ALTERNATE = PropertyOptions.ARRAY_ALTERNATE;
     30 	/**
     31 	 * The actual is an alternate text array, the alias is to the 'x-default' element of the array.
     32 	 */
     33 	public static final int PROP_ARRAY_ALT_TEXT = PropertyOptions.ARRAY_ALT_TEXT;
     34 
     35 
     36 	/**
     37 	 * @see Options#Options()
     38 	 */
     39 	public AliasOptions()
     40 	{
     41 		// EMPTY
     42 	}
     43 
     44 
     45 	/**
     46 	 * @param options the options to init with
     47 	 * @throws XMPException If options are not consistant
     48 	 */
     49 	public AliasOptions(int options) throws XMPException
     50 	{
     51 		super(options);
     52 	}
     53 
     54 
     55 	/**
     56 	 * @return Returns if the alias is of the simple form.
     57 	 */
     58 	public boolean isSimple()
     59 	{
     60 		return getOptions() == PROP_DIRECT;
     61 	}
     62 
     63 
     64 	/**
     65 	 * @return Returns the option.
     66 	 */
     67 	public boolean isArray()
     68 	{
     69 		return getOption(PROP_ARRAY);
     70 	}
     71 
     72 
     73 	/**
     74 	 * @param value the value to set
     75 	 * @return Returns the instance to call more set-methods.
     76 	 */
     77 	public AliasOptions setArray(boolean value)
     78 	{
     79 		setOption(PROP_ARRAY, value);
     80 		return this;
     81 	}
     82 
     83 
     84 	/**
     85 	 * @return Returns the option.
     86 	 */
     87 	public boolean isArrayOrdered()
     88 	{
     89 		return getOption(PROP_ARRAY_ORDERED);
     90 	}
     91 
     92 
     93 	/**
     94 	 * @param value the value to set
     95 	 * @return Returns the instance to call more set-methods.
     96 	 */
     97 	public AliasOptions setArrayOrdered(boolean value)
     98 	{
     99 		setOption(PROP_ARRAY | PROP_ARRAY_ORDERED, value);
    100 		return this;
    101 	}
    102 
    103 
    104 	/**
    105 	 * @return Returns the option.
    106 	 */
    107 	public boolean isArrayAlternate()
    108 	{
    109 		return getOption(PROP_ARRAY_ALTERNATE);
    110 	}
    111 
    112 
    113 	/**
    114 	 * @param value the value to set
    115 	 * @return Returns the instance to call more set-methods.
    116 	 */
    117 	public AliasOptions setArrayAlternate(boolean value)
    118 	{
    119 		setOption(PROP_ARRAY | PROP_ARRAY_ORDERED | PROP_ARRAY_ALTERNATE, value);
    120 		return this;
    121 	}
    122 
    123 
    124 	/**
    125 	 * @return Returns the option.
    126 	 */
    127 	public boolean isArrayAltText()
    128 	{
    129 		return getOption(PROP_ARRAY_ALT_TEXT);
    130 	}
    131 
    132 
    133 	/**
    134 	 * @param value the value to set
    135 	 * @return Returns the instance to call more set-methods.
    136 	 */
    137 	public AliasOptions setArrayAltText(boolean value)
    138 	{
    139 		setOption(PROP_ARRAY | PROP_ARRAY_ORDERED |
    140 			PROP_ARRAY_ALTERNATE | PROP_ARRAY_ALT_TEXT, value);
    141 		return this;
    142 	}
    143 
    144 
    145 	/**
    146 	 * @return returns a {@link PropertyOptions}s object
    147 	 * @throws XMPException If the options are not consistant.
    148 	 */
    149 	public PropertyOptions toPropertyOptions() throws XMPException
    150 	{
    151 		return new PropertyOptions(getOptions());
    152 	}
    153 
    154 
    155 	/**
    156 	 * @see Options#defineOptionName(int)
    157 	 */
    158 	protected String defineOptionName(int option)
    159 	{
    160 		switch (option)
    161 		{
    162 			case PROP_DIRECT : 			return "PROP_DIRECT";
    163 			case PROP_ARRAY :			return "ARRAY";
    164 			case PROP_ARRAY_ORDERED :	return "ARRAY_ORDERED";
    165 			case PROP_ARRAY_ALTERNATE :	return "ARRAY_ALTERNATE";
    166 			case PROP_ARRAY_ALT_TEXT :	return "ARRAY_ALT_TEXT";
    167 			default: 					return null;
    168 		}
    169 	}
    170 
    171 
    172 	/**
    173 	 * @see Options#getValidOptions()
    174 	 */
    175 	protected int getValidOptions()
    176 	{
    177 		return
    178 			PROP_DIRECT |
    179 			PROP_ARRAY |
    180 			PROP_ARRAY_ORDERED |
    181 			PROP_ARRAY_ALTERNATE |
    182 			PROP_ARRAY_ALT_TEXT;
    183 	}
    184 }