| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package javax.imageio.metadata; |
| |
| import javax.imageio.ImageTypeSpecifier; |
| import java.util.Locale; |
| |
| /** |
| * The Interface IIOMetadataFormat is implemented by classes that describe the |
| * rules and allowed elements for a metadata document tree. |
| * |
| * @since Android 1.0 |
| */ |
| public interface IIOMetadataFormat { |
| |
| /** |
| * The CHILD_POLICY_EMPTY. |
| */ |
| int CHILD_POLICY_EMPTY = 0; |
| |
| /** |
| * The CHILD_POLICY_ALL. |
| */ |
| int CHILD_POLICY_ALL = 1; |
| |
| /** |
| * The CHILD_POLICY_SOME. |
| */ |
| int CHILD_POLICY_SOME = 2; |
| |
| /** |
| * The CHILD_POLICY_CHOICE. |
| */ |
| int CHILD_POLICY_CHOICE = 3; |
| |
| /** |
| * The CHILD_POLICY_SEQUENCE. |
| */ |
| int CHILD_POLICY_SEQUENCE = 4; |
| |
| /** |
| * The CHILD_POLICY_REPEAT. |
| */ |
| int CHILD_POLICY_REPEAT = 5; |
| |
| /** |
| * The maximum value for the child policy. |
| */ |
| int CHILD_POLICY_MAX = CHILD_POLICY_REPEAT; |
| |
| /** |
| * The DATATYPE_STRING. |
| */ |
| int DATATYPE_STRING = 0; |
| |
| /** |
| * The DATATYPE_BOOLEAN. |
| */ |
| int DATATYPE_BOOLEAN = 1; |
| |
| /** |
| * The DATATYPE_INTEGER. |
| */ |
| int DATATYPE_INTEGER = 2; |
| |
| /** |
| * The DATATYPE_FLOAT. |
| */ |
| int DATATYPE_FLOAT = 3; |
| |
| /** |
| * The DATATYPE_DOUBLE. |
| */ |
| int DATATYPE_DOUBLE = 4; |
| |
| /** |
| * The VALUE_NONE. |
| */ |
| int VALUE_NONE = 0; |
| |
| /** |
| * The VALUE_ARBITRARY. |
| */ |
| int VALUE_ARBITRARY = 1; |
| |
| /** |
| * The VALUE_RANGE. |
| */ |
| int VALUE_RANGE = 2; |
| |
| /** |
| * The VALUE_RANGE_MIN_INCLUSIVE_MASK. |
| */ |
| int VALUE_RANGE_MIN_INCLUSIVE_MASK = 4; |
| |
| /** |
| * The VALUE_RANGE_MAX_INCLUSIVE_MASK. |
| */ |
| int VALUE_RANGE_MAX_INCLUSIVE_MASK = 8; |
| |
| /** |
| * The VALUE_ENUMERATION. |
| */ |
| int VALUE_ENUMERATION = 16; |
| |
| /** |
| * The VALUE_LIST. |
| */ |
| int VALUE_LIST = 32; |
| |
| /** |
| * The VALUE_RANGE_MIN_INCLUSIVE. |
| */ |
| int VALUE_RANGE_MIN_INCLUSIVE = VALUE_RANGE | VALUE_RANGE_MIN_INCLUSIVE_MASK; |
| |
| /** |
| * The VALUE_RANGE_MAX_INCLUSIVE. |
| */ |
| int VALUE_RANGE_MAX_INCLUSIVE = VALUE_RANGE | VALUE_RANGE_MAX_INCLUSIVE_MASK; |
| |
| /** |
| * The VALUE_RANGE_MIN_MAX_INCLUSIVE. |
| */ |
| int VALUE_RANGE_MIN_MAX_INCLUSIVE = VALUE_RANGE | VALUE_RANGE_MIN_INCLUSIVE_MASK |
| | VALUE_RANGE_MAX_INCLUSIVE_MASK; |
| |
| /** |
| * Tells whether the specified element is allowed for the specified image |
| * type. |
| * |
| * @param elementName |
| * the element name. |
| * @param imageType |
| * the image type. |
| * @return true, if the specified element is allowed for the specified image |
| * type. |
| */ |
| boolean canNodeAppear(String elementName, ImageTypeSpecifier imageType); |
| |
| /** |
| * Gets data type of the specified attribute of the specified element. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @return the attribute's data type. |
| */ |
| int getAttributeDataType(String elementName, String attrName); |
| |
| /** |
| * Gets the default value of the specified attribute of the specified |
| * element. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @return the attribute's default value. |
| */ |
| String getAttributeDefaultValue(String elementName, String attrName); |
| |
| /** |
| * Gets the user-friendly description of the attribute. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @param locale |
| * the locale giving the desired language for the description. |
| * @return the attribute description. |
| */ |
| String getAttributeDescription(String elementName, String attrName, Locale locale); |
| |
| /** |
| * Gets the attribute enumerations. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @return the attribute enumerations. |
| */ |
| String[] getAttributeEnumerations(String elementName, String attrName); |
| |
| /** |
| * Gets the maximum length of the attribute list. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @return the maximum length of the attribute list. |
| */ |
| int getAttributeListMaxLength(String elementName, String attrName); |
| |
| /** |
| * Gets the minimum length of the attribute list. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @return the minimum length of the attribute list. |
| */ |
| int getAttributeListMinLength(String elementName, String attrName); |
| |
| /** |
| * Gets the maximum value allowed for the attribute. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @return the maximum value allowed for the attribute. |
| */ |
| String getAttributeMaxValue(String elementName, String attrName); |
| |
| /** |
| * Gets the minimum value allowed for the attribute. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @return the minimum value allowed for the attribute. |
| */ |
| String getAttributeMinValue(String elementName, String attrName); |
| |
| /** |
| * Gets the attribute names allowed for the specified element. |
| * |
| * @param elementName |
| * the element name. |
| * @return the attribute names. |
| */ |
| String[] getAttributeNames(String elementName); |
| |
| /** |
| * Gets the attribute value type. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @return the attribute value type. |
| */ |
| int getAttributeValueType(String elementName, String attrName); |
| |
| /** |
| * Checks whether the specified attribute is required for the specified |
| * element. |
| * |
| * @param elementName |
| * the element name. |
| * @param attrName |
| * the attribute name. |
| * @return true, if the specified attribute is required for the specified |
| * element. |
| */ |
| boolean isAttributeRequired(String elementName, String attrName); |
| |
| /** |
| * Gets the names of the possible child elements for the given element. |
| * |
| * @param elementName |
| * the element name. |
| * @return the child names. |
| */ |
| String[] getChildNames(String elementName); |
| |
| /** |
| * Gets the constant describing the element's child policy. |
| * |
| * @param elementName |
| * the element name. |
| * @return the child policy. |
| */ |
| int getChildPolicy(String elementName); |
| |
| /** |
| * Gets the user-friendly description of the element. |
| * |
| * @param elementName |
| * the element name. |
| * @param locale |
| * the locale giving the desired language for the description. |
| * @return the element description. |
| */ |
| String getElementDescription(String elementName, Locale locale); |
| |
| /** |
| * Gets the maximum number of children allowed for the element. |
| * |
| * @param elementName |
| * the element name. |
| * @return the maximum number of children allowed for the element. |
| */ |
| int getElementMaxChildren(String elementName); |
| |
| /** |
| * Gets the minimum number of children allowed for the element. |
| * |
| * @param elementName |
| * the element name. |
| * @return the minimum number of children allowed for the element. |
| */ |
| int getElementMinChildren(String elementName); |
| |
| /** |
| * Gets the maximum object array length allowed for the element. |
| * |
| * @param elementName |
| * the element name. |
| * @return the maximum object array length allowed for the element. |
| */ |
| int getObjectArrayMaxLength(String elementName); |
| |
| /** |
| * Gets the minimum object array length allowed for the element. |
| * |
| * @param elementName |
| * the element name. |
| * @return the minimum object array length allowed for the element. |
| */ |
| int getObjectArrayMinLength(String elementName); |
| |
| /** |
| * Gets the object class corresponding to the specified element. |
| * |
| * @param elementName |
| * the element name. |
| * @return the object class corresponding to the specified element. |
| */ |
| Class<?> getObjectClass(String elementName); |
| |
| /** |
| * Gets the object default value for the element. |
| * |
| * @param elementName |
| * the element name. |
| * @return the object default value for the element. |
| */ |
| Object getObjectDefaultValue(String elementName); |
| |
| /** |
| * Gets the object enumerations. |
| * |
| * @param elementName |
| * the element name. |
| * @return the object enumerations. |
| */ |
| Object[] getObjectEnumerations(String elementName); |
| |
| /** |
| * Gets the maximum value allowed for the element's object. |
| * |
| * @param elementName |
| * the element name. |
| * @return the maximum value allowed for the element's object. |
| */ |
| Comparable<?> getObjectMaxValue(String elementName); |
| |
| /** |
| * Gets the minimum value allowed for the element's object. |
| * |
| * @param elementName |
| * the element name. |
| * @return the minimum value allowed for the element's object. |
| */ |
| Comparable<?> getObjectMinValue(String elementName); |
| |
| /** |
| * Gets the constant that indicates the type of the element's value. |
| * |
| * @param elementName |
| * the element name. |
| * @return the constant that indicates the type of the element's value. |
| */ |
| int getObjectValueType(String elementName); |
| |
| /** |
| * Gets the name of the root element. |
| * |
| * @return the name of the root element. |
| */ |
| String getRootName(); |
| } |