// ================================================================================================= // ADOBE SYSTEMS INCORPORATED // Copyright 2006 Adobe Systems Incorporated // All Rights Reserved // // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance with the terms // of the Adobe license agreement accompanying it. // ================================================================================================= package com.adobe.xmp.options; import com.adobe.xmp.XMPException; /** * Options for XMPSchemaRegistryImpl#registerAlias. * * @since 20.02.2006 */ public final class AliasOptions extends Options { /** This is a direct mapping. The actual data type does not matter. */ public static final int PROP_DIRECT = 0; /** The actual is an unordered array, the alias is to the first element of the array. */ public static final int PROP_ARRAY = PropertyOptions.ARRAY; /** The actual is an ordered array, the alias is to the first element of the array. */ public static final int PROP_ARRAY_ORDERED = PropertyOptions.ARRAY_ORDERED; /** The actual is an alternate array, the alias is to the first element of the array. */ public static final int PROP_ARRAY_ALTERNATE = PropertyOptions.ARRAY_ALTERNATE; /** * The actual is an alternate text array, the alias is to the 'x-default' element of the array. */ public static final int PROP_ARRAY_ALT_TEXT = PropertyOptions.ARRAY_ALT_TEXT; /** * @see Options#Options() */ public AliasOptions() { // EMPTY } /** * @param options the options to init with * @throws XMPException If options are not consistant */ public AliasOptions(int options) throws XMPException { super(options); } /** * @return Returns if the alias is of the simple form. */ public boolean isSimple() { return getOptions() == PROP_DIRECT; } /** * @return Returns the option. */ public boolean isArray() { return getOption(PROP_ARRAY); } /** * @param value the value to set * @return Returns the instance to call more set-methods. */ public AliasOptions setArray(boolean value) { setOption(PROP_ARRAY, value); return this; } /** * @return Returns the option. */ public boolean isArrayOrdered() { return getOption(PROP_ARRAY_ORDERED); } /** * @param value the value to set * @return Returns the instance to call more set-methods. */ public AliasOptions setArrayOrdered(boolean value) { setOption(PROP_ARRAY | PROP_ARRAY_ORDERED, value); return this; } /** * @return Returns the option. */ public boolean isArrayAlternate() { return getOption(PROP_ARRAY_ALTERNATE); } /** * @param value the value to set * @return Returns the instance to call more set-methods. */ public AliasOptions setArrayAlternate(boolean value) { setOption(PROP_ARRAY | PROP_ARRAY_ORDERED | PROP_ARRAY_ALTERNATE, value); return this; } /** * @return Returns the option. */ public boolean isArrayAltText() { return getOption(PROP_ARRAY_ALT_TEXT); } /** * @param value the value to set * @return Returns the instance to call more set-methods. */ public AliasOptions setArrayAltText(boolean value) { setOption(PROP_ARRAY | PROP_ARRAY_ORDERED | PROP_ARRAY_ALTERNATE | PROP_ARRAY_ALT_TEXT, value); return this; } /** * @return returns a {@link PropertyOptions}s object * @throws XMPException If the options are not consistant. */ public PropertyOptions toPropertyOptions() throws XMPException { return new PropertyOptions(getOptions()); } /** * @see Options#defineOptionName(int) */ protected String defineOptionName(int option) { switch (option) { case PROP_DIRECT : return "PROP_DIRECT"; case PROP_ARRAY : return "ARRAY"; case PROP_ARRAY_ORDERED : return "ARRAY_ORDERED"; case PROP_ARRAY_ALTERNATE : return "ARRAY_ALTERNATE"; case PROP_ARRAY_ALT_TEXT : return "ARRAY_ALT_TEXT"; default: return null; } } /** * @see Options#getValidOptions() */ protected int getValidOptions() { return PROP_DIRECT | PROP_ARRAY | PROP_ARRAY_ORDERED | PROP_ARRAY_ALTERNATE | PROP_ARRAY_ALT_TEXT; } }