348 lines
10 KiB
Java
348 lines
10 KiB
Java
/*
|
|
* 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.
|
|
*/
|
|
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();
|
|
}
|