summaryrefslogtreecommitdiffstats
path: root/awt/javax/imageio/metadata/IIOMetadataFormatImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/javax/imageio/metadata/IIOMetadataFormatImpl.java')
-rw-r--r--awt/javax/imageio/metadata/IIOMetadataFormatImpl.java1056
1 files changed, 0 insertions, 1056 deletions
diff --git a/awt/javax/imageio/metadata/IIOMetadataFormatImpl.java b/awt/javax/imageio/metadata/IIOMetadataFormatImpl.java
deleted file mode 100644
index 1a6e568..0000000
--- a/awt/javax/imageio/metadata/IIOMetadataFormatImpl.java
+++ /dev/null
@@ -1,1056 +0,0 @@
-/*
- * 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.*;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-
-/**
- * The IIOMetadataFormatImpl class provides an implementation of the
- * IIOMetadataFormat interface.
- *
- * @since Android 1.0
- */
-public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat {
-
- /**
- * The Constant standardMetadataFormatName.
- */
- @SuppressWarnings( {
- "ConstantDeclaredInAbstractClass"
- })
- public static final String standardMetadataFormatName = "javax_imageio_1.0";
-
- /**
- * The standard format.
- */
- @SuppressWarnings( {
- "StaticNonFinalField"
- })
- private static IIOMetadataFormatImpl standardFormat;
-
- /**
- * The root name.
- */
- private String rootName;
-
- /**
- * The element hash.
- */
- private HashMap<String, Element> elementHash = new HashMap<String, Element>();
-
- /**
- * The resource base name.
- */
- private String resourceBaseName = getClass().getName() + "Resources";
-
- /**
- * Instantiates an IIOMetadataFormatImpl with the specified root name and
- * child policy (not CHILD_POLICY_REPEAT).
- *
- * @param rootName
- * the name of root element.
- * @param childPolicy
- * the child policy defined by one of the CHILD_POLICY_*
- * constants (except CHILD_POLICY_REPEAT).
- */
- public IIOMetadataFormatImpl(String rootName, int childPolicy) {
- if (rootName == null) {
- throw new IllegalArgumentException("rootName is null");
- }
- if (childPolicy < CHILD_POLICY_EMPTY || childPolicy > CHILD_POLICY_MAX
- || childPolicy == CHILD_POLICY_REPEAT) {
- throw new IllegalArgumentException("childPolicy is not one of the predefined constants");
- }
-
- this.rootName = rootName;
- Element root = new Element();
- root.name = rootName;
- root.childPolicy = childPolicy;
- elementHash.put(rootName, root);
- }
-
- /**
- * Instantiates an IIOMetadataFormatImpl with the specified root name and
- * CHILD_POLICY_REPEAT child policy.
- *
- * @param rootName
- * the name of root element.
- * @param minChildren
- * the minimum number of children.
- * @param maxChildren
- * the maximum number of children
- */
- public IIOMetadataFormatImpl(String rootName, int minChildren, int maxChildren) {
- if (rootName == null) {
- throw new IllegalArgumentException("rootName is null");
- }
- if (minChildren < 0) {
- throw new IllegalArgumentException("minChildren < 0!");
- }
- if (minChildren > maxChildren) {
- throw new IllegalArgumentException("minChildren > maxChildren!");
- }
-
- this.rootName = rootName;
- Element root = new Element();
- root.name = rootName;
- root.minChildren = minChildren;
- root.maxChildren = maxChildren;
- root.childPolicy = CHILD_POLICY_REPEAT;
- elementHash.put(rootName, root);
- }
-
- @SuppressWarnings( {
- "AbstractMethodOverridesAbstractMethod"
- })
- public abstract boolean canNodeAppear(String elementName, ImageTypeSpecifier imageType);
-
- /**
- * Adds a new attribute to an existing element.
- *
- * @param elementName
- * the name of the element to which the new attribute will be
- * added.
- * @param attrName
- * the attribute name.
- * @param dataType
- * the data type of the new attribute.
- * @param required
- * the flag which indicates whether this attribute must be
- * present.
- * @param listMinLength
- * the minimum legal number of list items.
- * @param listMaxLength
- * the the maximum legal number of list items.
- */
- protected void addAttribute(String elementName, String attrName, int dataType,
- boolean required, int listMinLength, int listMaxLength) {
- if (attrName == null) {
- throw new IllegalArgumentException("attrName == null!");
- }
- if (dataType < DATATYPE_STRING || dataType > DATATYPE_DOUBLE) {
- throw new IllegalArgumentException("Invalid value for dataType!");
- }
- if (listMinLength < 0 || listMinLength > listMaxLength) {
- throw new IllegalArgumentException("Invalid list bounds!");
- }
-
- Element element = findElement(elementName);
- Attlist attr = new Attlist();
- attr.name = attrName;
- attr.dataType = dataType;
- attr.required = required;
- attr.listMinLength = listMinLength;
- attr.listMaxLength = listMaxLength;
- attr.valueType = VALUE_LIST;
-
- element.attributes.put(attrName, attr);
- }
-
- /**
- * Adds a new attribute to an existing element.
- *
- * @param elementName
- * the name of the element to which the new attribute will be
- * added.
- * @param attrName
- * the attribute name.
- * @param dataType
- * the data type of the new attribute.
- * @param required
- * the flag which indicates whether this attribute must be
- * present.
- * @param defaultValue
- * the default value of the attribute.
- */
- protected void addAttribute(String elementName, String attrName, int dataType,
- boolean required, String defaultValue) {
- if (attrName == null) {
- throw new IllegalArgumentException("attrName == null!");
- }
- if (dataType < DATATYPE_STRING || dataType > DATATYPE_DOUBLE) {
- throw new IllegalArgumentException("Invalid value for dataType!");
- }
-
- Element element = findElement(elementName);
- Attlist attr = new Attlist();
- attr.name = attrName;
- attr.dataType = dataType;
- attr.required = required;
- attr.defaultValue = defaultValue;
- attr.valueType = VALUE_ARBITRARY;
-
- element.attributes.put(attrName, attr);
- }
-
- /**
- * Adds a new attribute to an existing element.
- *
- * @param elementName
- * the name of the element to which the new attribute will be
- * added.
- * @param attrName
- * the attribute name.
- * @param dataType
- * the data type of the new attribute.
- * @param required
- * the flag which indicates whether this attribute must be
- * present.
- * @param defaultValue
- * the default value of the attribute.
- * @param enumeratedValues
- * the legal values for the attribute as a list of strings.
- */
- protected void addAttribute(String elementName, String attrName, int dataType,
- boolean required, String defaultValue, List<String> enumeratedValues) {
- if (attrName == null) {
- throw new IllegalArgumentException("attrName == null!");
- }
- if (dataType < DATATYPE_STRING || dataType > DATATYPE_DOUBLE) {
- throw new IllegalArgumentException("Invalid value for dataType!");
- }
- if (enumeratedValues == null || enumeratedValues.isEmpty()) {
- throw new IllegalArgumentException("enumeratedValues is empty or null");
- }
-
- try {
- for (String enumeratedValue : enumeratedValues) {
- if (enumeratedValue == null) {
- throw new IllegalArgumentException("enumeratedValues contains a null!");
- }
- }
- } catch (ClassCastException e) {
- throw new IllegalArgumentException("enumeratedValues contains a non-String value!");
- }
-
- Element element = findElement(elementName);
- Attlist attr = new Attlist();
- attr.name = attrName;
- attr.dataType = dataType;
- attr.required = required;
- attr.defaultValue = defaultValue;
- attr.enumeratedValues = enumeratedValues;
- attr.valueType = VALUE_ENUMERATION;
-
- element.attributes.put(attrName, attr);
- }
-
- /**
- * Adds a new attribute to an existing element.
- *
- * @param elementName
- * the name of the element to which the new attribute will be
- * added.
- * @param attrName
- * the attribute name.
- * @param dataType
- * the data type of the new attribute.
- * @param required
- * the flag which indicates whether this attribute must be
- * present.
- * @param defaultValue
- * the default value of attribute.
- * @param minValue
- * the minimum legal value of an attribute.
- * @param maxValue
- * the maximum legal value of an attribute.
- * @param minInclusive
- * the flag which indicates whether the minValue is inclusive.
- * @param maxInclusive
- * the flag which indicates whether the maxValue is inclusive.
- */
- protected void addAttribute(String elementName, String attrName, int dataType,
- boolean required, String defaultValue, String minValue, String maxValue,
- boolean minInclusive, boolean maxInclusive) {
- if (attrName == null) {
- throw new IllegalArgumentException("attrName == null!");
- }
- if (dataType < DATATYPE_STRING || dataType > DATATYPE_DOUBLE) {
- throw new IllegalArgumentException("Invalid value for dataType!");
- }
-
- Element element = findElement(elementName);
- Attlist attr = new Attlist();
- attr.name = attrName;
- attr.dataType = dataType;
- attr.required = required;
- attr.defaultValue = defaultValue;
- attr.minValue = minValue;
- attr.maxValue = maxValue;
- attr.minInclusive = minInclusive;
- attr.maxInclusive = maxInclusive;
-
- attr.valueType = VALUE_RANGE;
- attr.valueType |= minInclusive ? VALUE_RANGE_MIN_INCLUSIVE_MASK : 0;
- attr.valueType |= maxInclusive ? VALUE_RANGE_MAX_INCLUSIVE_MASK : 0;
-
- element.attributes.put(attrName, attr);
- }
-
- /**
- * Adds a new attribute with boolean data type to an existing element.
- *
- * @param elementName
- * the name of the element to which the new attribute will be
- * added.
- * @param attrName
- * the attribute name.
- * @param hasDefaultValue
- * the flag which indicates whether this attribute must have a
- * default value.
- * @param defaultValue
- * the default value.
- */
- protected void addBooleanAttribute(String elementName, String attrName,
- boolean hasDefaultValue, boolean defaultValue) {
- String defaultVal = hasDefaultValue ? (defaultValue ? "TRUE" : "FALSE") : null;
- ArrayList<String> values = new ArrayList<String>(2);
- values.add("TRUE");
- values.add("FALSE");
-
- addAttribute(elementName, attrName, DATATYPE_BOOLEAN, true, defaultVal, values);
- }
-
- /**
- * Adds an existing element to the list of child elements of the specified
- * parent element.
- *
- * @param elementName
- * the name of the element to be added.
- * @param parentName
- * the parent element name.
- */
- protected void addChildElement(String elementName, String parentName) {
- Element parent = findElement(parentName);
- Element element = findElement(elementName);
- parent.children.add(element.name);
- }
-
- /**
- * Adds a new element type to this IIOMetadataFormat with a child policy (if
- * policy is not CHILD_POLICY_REPEAT).
- *
- * @param elementName
- * the name of the element to be added.
- * @param parentName
- * the parent element name.
- * @param childPolicy
- * one of the CHILD_POLICY_* constants defined by
- * IIOMetadataFormat.
- */
- protected void addElement(String elementName, String parentName, int childPolicy) {
- if (childPolicy < CHILD_POLICY_EMPTY || childPolicy > CHILD_POLICY_MAX
- || childPolicy == CHILD_POLICY_REPEAT) {
- throw new IllegalArgumentException("childPolicy is not one of the predefined constants");
- }
-
- Element parent = findElement(parentName);
- Element element = new Element();
- element.name = elementName;
- element.childPolicy = childPolicy;
- elementHash.put(elementName, element);
- parent.children.add(elementName);
- }
-
- /**
- * Adds a new element type to this IIOMetadataFormat with
- * CHILD_POLICY_REPEAT and the specified minimum and maximum number of child
- * elements.
- *
- * @param elementName
- * the element name to be added.
- * @param parentName
- * the parent element name.
- * @param minChildren
- * the minimum number of child elements.
- * @param maxChildren
- * the maximum number of child elements.
- */
- protected void addElement(String elementName, String parentName, int minChildren,
- int maxChildren) {
- if (minChildren < 0) {
- throw new IllegalArgumentException("minChildren < 0!");
- }
- if (minChildren > maxChildren) {
- throw new IllegalArgumentException("minChildren > maxChildren!");
- }
-
- Element parent = findElement(parentName);
- Element element = new Element();
- element.name = elementName;
- element.childPolicy = CHILD_POLICY_REPEAT;
- element.minChildren = minChildren;
- element.maxChildren = maxChildren;
- elementHash.put(elementName, element);
- parent.children.add(elementName);
- }
-
- /**
- * Adds an Object reference with the specified class type to be stored as
- * element's value.
- *
- * @param elementName
- * the element name.
- * @param classType
- * the class indicates the legal types for the object's value.
- * @param arrayMinLength
- * the minimum legal length for the array.
- * @param arrayMaxLength
- * the maximum legal length for the array.
- */
- protected void addObjectValue(String elementName, Class<?> classType, int arrayMinLength,
- int arrayMaxLength) {
- Element element = findElement(elementName);
-
- ObjectValue objVal = new ObjectValue();
- objVal.classType = classType;
- objVal.arrayMaxLength = arrayMaxLength;
- objVal.arrayMinLength = arrayMinLength;
- objVal.valueType = VALUE_LIST;
-
- element.objectValue = objVal;
- }
-
- /**
- * Adds an Object reference with the specified class type to be stored as an
- * element's value.
- *
- * @param elementName
- * the element name.
- * @param classType
- * the class indicates the legal types for the object's value.
- * @param required
- * a flag indicated that this object value must be present.
- * @param defaultValue
- * the default value, or null.
- */
- protected <T> void addObjectValue(String elementName, Class<T> classType, boolean required,
- T defaultValue) {
- // note: reqired is an unused parameter
- Element element = findElement(elementName);
-
- ObjectValue<T> objVal = new ObjectValue<T>();
- objVal.classType = classType;
- objVal.defaultValue = defaultValue;
- objVal.valueType = VALUE_ARBITRARY;
-
- element.objectValue = objVal;
- }
-
- /**
- * Adds an Object reference with the specified class type to be stored as
- * the element's value.
- *
- * @param elementName
- * the element name.
- * @param classType
- * the class indicates the legal types for the object value.
- * @param required
- * a flag indicated that this object value must be present.
- * @param defaultValue
- * the default value, or null.
- * @param enumeratedValues
- * the list of legal values for the object.
- */
- protected <T> void addObjectValue(String elementName, Class<T> classType, boolean required,
- T defaultValue, List<? extends T> enumeratedValues) {
- // note: reqired is an unused parameter
- if (enumeratedValues == null || enumeratedValues.isEmpty()) {
- throw new IllegalArgumentException("enumeratedValues is empty or null");
- }
-
- try {
- for (T enumeratedValue : enumeratedValues) {
- if (enumeratedValue == null) {
- throw new IllegalArgumentException("enumeratedValues contains a null!");
- }
- }
- } catch (ClassCastException e) {
- throw new IllegalArgumentException(
- "enumeratedValues contains a value not of class classType!");
- }
-
- Element element = findElement(elementName);
-
- ObjectValue<T> objVal = new ObjectValue<T>();
- objVal.classType = classType;
- objVal.defaultValue = defaultValue;
- objVal.enumeratedValues = enumeratedValues;
- objVal.valueType = VALUE_ENUMERATION;
-
- element.objectValue = objVal;
- }
-
- /**
- * Adds an Object reference with the specified class type to be stored as
- * the element's value.
- *
- * @param elementName
- * the element name.
- * @param classType
- * the class indicates the legal types for the object value.
- * @param defaultValue
- * the default value, or null.
- * @param minValue
- * the minimum legal value for the object value.
- * @param maxValue
- * the maximum legal value for the object value.
- * @param minInclusive
- * the flag which indicates whether the minValue is inclusive.
- * @param maxInclusive
- * the flag which indicates whether the maxValue is inclusive.
- */
- protected <T extends Object & Comparable<? super T>> void addObjectValue(String elementName,
- Class<T> classType, T defaultValue, Comparable<? super T> minValue,
- Comparable<? super T> maxValue, boolean minInclusive, boolean maxInclusive) {
- Element element = findElement(elementName);
-
- ObjectValue<T> objVal = new ObjectValue<T>();
- objVal.classType = classType;
- objVal.defaultValue = defaultValue;
- objVal.minValue = minValue;
- objVal.maxValue = maxValue;
- objVal.minInclusive = minInclusive;
- objVal.maxInclusive = maxInclusive;
-
- objVal.valueType = VALUE_RANGE;
- objVal.valueType |= minInclusive ? VALUE_RANGE_MIN_INCLUSIVE_MASK : 0;
- objVal.valueType |= maxInclusive ? VALUE_RANGE_MAX_INCLUSIVE_MASK : 0;
-
- element.objectValue = objVal;
- }
-
- public int getAttributeDataType(String elementName, String attrName) {
- Attlist attr = findAttribute(elementName, attrName);
- return attr.dataType;
- }
-
- public String getAttributeDefaultValue(String elementName, String attrName) {
- Attlist attr = findAttribute(elementName, attrName);
- return attr.defaultValue;
- }
-
- public String getAttributeDescription(String elementName, String attrName, Locale locale) {
- findAttribute(elementName, attrName);
- return getResourceString(elementName + "/" + attrName, locale);
- }
-
- public String[] getAttributeEnumerations(String elementName, String attrName) {
- Attlist attr = findAttribute(elementName, attrName);
- if (attr.valueType != VALUE_ENUMERATION) {
- throw new IllegalArgumentException("Attribute is not an enumeration!");
- }
-
- return attr.enumeratedValues.toArray(new String[attr.enumeratedValues.size()]);
- }
-
- public int getAttributeListMaxLength(String elementName, String attrName) {
- Attlist attr = findAttribute(elementName, attrName);
- if (attr.valueType != VALUE_LIST) {
- throw new IllegalArgumentException("Attribute is not a list!");
- }
- return attr.listMaxLength;
- }
-
- public int getAttributeListMinLength(String elementName, String attrName) {
- Attlist attr = findAttribute(elementName, attrName);
- if (attr.valueType != VALUE_LIST) {
- throw new IllegalArgumentException("Attribute is not a list!");
- }
- return attr.listMinLength;
- }
-
- public String getAttributeMaxValue(String elementName, String attrName) {
- Attlist attr = findAttribute(elementName, attrName);
- if ((attr.valueType & VALUE_RANGE) == 0) {
- throw new IllegalArgumentException("Attribute is not a range!");
- }
- return attr.maxValue;
- }
-
- public String getAttributeMinValue(String elementName, String attrName) {
- Attlist attr = findAttribute(elementName, attrName);
- if ((attr.valueType & VALUE_RANGE) == 0) {
- throw new IllegalArgumentException("Attribute is not a range!");
- }
- return attr.minValue;
- }
-
- public String[] getAttributeNames(String elementName) {
- Element element = findElement(elementName);
- return element.attributes.keySet().toArray(new String[element.attributes.size()]);
- }
-
- public int getAttributeValueType(String elementName, String attrName) {
- Attlist attr = findAttribute(elementName, attrName);
- return attr.valueType;
- }
-
- public String[] getChildNames(String elementName) {
- Element element = findElement(elementName);
- if (element.childPolicy == CHILD_POLICY_EMPTY) { // Element cannot have
- // children
- return null;
- }
- return element.children.toArray(new String[element.children.size()]);
- }
-
- public int getChildPolicy(String elementName) {
- Element element = findElement(elementName);
- return element.childPolicy;
- }
-
- public String getElementDescription(String elementName, Locale locale) {
- findElement(elementName); // Check if there is such element
- return getResourceString(elementName, locale);
- }
-
- public int getElementMaxChildren(String elementName) {
- Element element = findElement(elementName);
- if (element.childPolicy != CHILD_POLICY_REPEAT) {
- throw new IllegalArgumentException("Child policy is not CHILD_POLICY_REPEAT!");
- }
- return element.maxChildren;
- }
-
- public int getElementMinChildren(String elementName) {
- Element element = findElement(elementName);
- if (element.childPolicy != CHILD_POLICY_REPEAT) {
- throw new IllegalArgumentException("Child policy is not CHILD_POLICY_REPEAT!");
- }
- return element.minChildren;
- }
-
- public int getObjectArrayMaxLength(String elementName) {
- Element element = findElement(elementName);
- ObjectValue v = element.objectValue;
- if (v == null || v.valueType != VALUE_LIST) {
- throw new IllegalArgumentException("Not a list!");
- }
- return v.arrayMaxLength;
- }
-
- public int getObjectArrayMinLength(String elementName) {
- Element element = findElement(elementName);
- ObjectValue v = element.objectValue;
- if (v == null || v.valueType != VALUE_LIST) {
- throw new IllegalArgumentException("Not a list!");
- }
- return v.arrayMinLength;
- }
-
- public Class<?> getObjectClass(String elementName) {
- ObjectValue v = findObjectValue(elementName);
- return v.classType;
- }
-
- public Object getObjectDefaultValue(String elementName) {
- ObjectValue v = findObjectValue(elementName);
- return v.defaultValue;
- }
-
- public Object[] getObjectEnumerations(String elementName) {
- Element element = findElement(elementName);
- ObjectValue v = element.objectValue;
- if (v == null || v.valueType != VALUE_ENUMERATION) {
- throw new IllegalArgumentException("Not an enumeration!");
- }
- return v.enumeratedValues.toArray();
- }
-
- public Comparable<?> getObjectMaxValue(String elementName) {
- Element element = findElement(elementName);
- ObjectValue v = element.objectValue;
- if (v == null || (v.valueType & VALUE_RANGE) == 0) {
- throw new IllegalArgumentException("Not a range!");
- }
- return v.maxValue;
- }
-
- public Comparable<?> getObjectMinValue(String elementName) {
- Element element = findElement(elementName);
- ObjectValue v = element.objectValue;
- if (v == null || (v.valueType & VALUE_RANGE) == 0) {
- throw new IllegalArgumentException("Not a range!");
- }
- return v.minValue;
- }
-
- public int getObjectValueType(String elementName) {
- Element element = findElement(elementName);
- if (element.objectValue == null) {
- return VALUE_NONE;
- }
- return element.objectValue.valueType;
- }
-
- /**
- * Gets the resource base name for locating ResourceBundles.
- *
- * @return the current resource base name.
- */
- protected String getResourceBaseName() {
- return resourceBaseName;
- }
-
- public String getRootName() {
- return rootName;
- }
-
- /**
- * Gets the standard format instance.
- *
- * @return the IIOMetadataFormat instance.
- */
- public static IIOMetadataFormat getStandardFormatInstance() {
- if (standardFormat == null) {
- standardFormat = new IIOStandardMetadataFormat();
- }
-
- return standardFormat;
- }
-
- public boolean isAttributeRequired(String elementName, String attrName) {
- return findAttribute(elementName, attrName).required;
- }
-
- /**
- * Removes the specified attribute from the specified element.
- *
- * @param elementName
- * the specified element name.
- * @param attrName
- * the specified attribute name.
- */
- protected void removeAttribute(String elementName, String attrName) {
- Element element = findElement(elementName);
- element.attributes.remove(attrName);
- }
-
- /**
- * Removes the specified element from this format.
- *
- * @param elementName
- * the specified element name.
- */
- protected void removeElement(String elementName) {
- Element element;
- if ((element = elementHash.get(elementName)) != null) {
- elementHash.remove(elementName);
- for (Element e : elementHash.values()) {
- e.children.remove(element.name);
- }
- }
- }
-
- /**
- * Removes the object value from the specified element.
- *
- * @param elementName
- * the element name.
- */
- protected void removeObjectValue(String elementName) {
- Element element = findElement(elementName);
- element.objectValue = null;
- }
-
- /**
- * Sets a new base name for ResourceBundles containing descriptions of
- * elements and attributes for this format.
- *
- * @param resourceBaseName
- * the new resource base name.
- */
- protected void setResourceBaseName(String resourceBaseName) {
- if (resourceBaseName == null) {
- throw new IllegalArgumentException("resourceBaseName == null!");
- }
- this.resourceBaseName = resourceBaseName;
- }
-
- /**
- * The Class Element.
- */
- @SuppressWarnings( {
- "ClassWithoutConstructor"
- })
- private class Element {
-
- /**
- * The name.
- */
- String name;
-
- /**
- * The children.
- */
- ArrayList<String> children = new ArrayList<String>();
-
- /**
- * The attributes.
- */
- HashMap<String, Attlist> attributes = new HashMap<String, Attlist>();
-
- /**
- * The min children.
- */
- int minChildren;
-
- /**
- * The max children.
- */
- int maxChildren;
-
- /**
- * The child policy.
- */
- int childPolicy;
-
- /**
- * The object value.
- */
- ObjectValue objectValue;
- }
-
- /**
- * The Class Attlist.
- */
- @SuppressWarnings( {
- "ClassWithoutConstructor"
- })
- private class Attlist {
-
- /**
- * The name.
- */
- String name;
-
- /**
- * The data type.
- */
- int dataType;
-
- /**
- * The required.
- */
- boolean required;
-
- /**
- * The list min length.
- */
- int listMinLength;
-
- /**
- * The list max length.
- */
- int listMaxLength;
-
- /**
- * The default value.
- */
- String defaultValue;
-
- /**
- * The enumerated values.
- */
- List<String> enumeratedValues;
-
- /**
- * The min value.
- */
- String minValue;
-
- /**
- * The max value.
- */
- String maxValue;
-
- /**
- * The min inclusive.
- */
- boolean minInclusive;
-
- /**
- * The max inclusive.
- */
- boolean maxInclusive;
-
- /**
- * The value type.
- */
- int valueType;
- }
-
- /**
- * The Class ObjectValue.
- */
- @SuppressWarnings( {
- "ClassWithoutConstructor"
- })
- private class ObjectValue<T> {
-
- /**
- * The class type.
- */
- Class<T> classType;
-
- /**
- * The array min length.
- */
- int arrayMinLength;
-
- /**
- * The array max length.
- */
- int arrayMaxLength;
-
- /**
- * The default value.
- */
- T defaultValue;
-
- /**
- * The enumerated values.
- */
- List<? extends T> enumeratedValues;
-
- /**
- * The min value.
- */
- Comparable<? super T> minValue;
-
- /**
- * The max value.
- */
- Comparable<? super T> maxValue;
-
- /**
- * The min inclusive.
- */
- boolean minInclusive;
-
- /**
- * The max inclusive.
- */
- boolean maxInclusive;
-
- /**
- * The value type.
- */
- int valueType;
- }
-
- /**
- * Find element.
- *
- * @param name
- * the name.
- * @return the element.
- */
- private Element findElement(String name) {
- Element element;
- if ((element = elementHash.get(name)) == null) {
- throw new IllegalArgumentException("element name is null or no such element: " + name);
- }
-
- return element;
- }
-
- /**
- * Find attribute.
- *
- * @param elementName
- * the element name.
- * @param attributeName
- * the attribute name.
- * @return the attlist.
- */
- private Attlist findAttribute(String elementName, String attributeName) {
- Element element = findElement(elementName);
- Attlist attribute;
- if ((attribute = element.attributes.get(attributeName)) == null) {
- throw new IllegalArgumentException("attribute name is null or no such attribute: "
- + attributeName);
- }
-
- return attribute;
- }
-
- /**
- * Find object value.
- *
- * @param elementName
- * the element name.
- * @return the object value.
- */
- private ObjectValue findObjectValue(String elementName) {
- Element element = findElement(elementName);
- ObjectValue v = element.objectValue;
- if (v == null) {
- throw new IllegalArgumentException("No object within element");
- }
- return v;
- }
-
- /**
- * Gets the resource string.
- *
- * @param key
- * the key.
- * @param locale
- * the locale.
- * @return the resource string.
- */
- private String getResourceString(String key, Locale locale) {
- if (locale == null) {
- locale = Locale.getDefault();
- }
-
- // Get the context class loader and try to locate the bundle with it
- // first
- ClassLoader contextClassloader = AccessController
- .doPrivileged(new PrivilegedAction<ClassLoader>() {
- public ClassLoader run() {
- return Thread.currentThread().getContextClassLoader();
- }
- });
-
- // Now try to get the resource bundle
- ResourceBundle rb;
- try {
- rb = ResourceBundle.getBundle(resourceBaseName, locale, contextClassloader);
- } catch (MissingResourceException e) {
- try {
- rb = ResourceBundle.getBundle(resourceBaseName, locale);
- } catch (MissingResourceException e1) {
- return null;
- }
- }
-
- try {
- return rb.getString(key);
- } catch (MissingResourceException e) {
- return null;
- } catch (ClassCastException e) {
- return null; // Not a string resource
- }
- }
-}