Imported GNU Classpath 0.19 + gcj-import-20051115.
* sources.am: Regenerated. * Makefile.in: Likewise. * scripts/makemake.tcl: Use glob -nocomplain. From-SVN: r107049
This commit is contained in:
parent
02e549bfaa
commit
8f523f3a10
1241 changed files with 97711 additions and 25284 deletions
|
@ -38,6 +38,848 @@ exception statement from your version. */
|
|||
|
||||
package javax.imageio.metadata;
|
||||
|
||||
import org.w3c.dom.Attr;
|
||||
import org.w3c.dom.DOMException;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
import org.w3c.dom.TypeInfo;
|
||||
import org.w3c.dom.UserDataHandler;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.ResourceBundle;
|
||||
import java.util.MissingResourceException;
|
||||
import javax.imageio.ImageTypeSpecifier;
|
||||
|
||||
public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat
|
||||
{
|
||||
/**
|
||||
* The standard metadata format name constant set to
|
||||
* "javax_imageio_1.0".
|
||||
*/
|
||||
public static final String standardMetadataFormatName = "javax_imageio_1.0";
|
||||
|
||||
private String rootName;
|
||||
|
||||
// These maps assume that each element name is unique.
|
||||
|
||||
private Map nodes = new HashMap();
|
||||
|
||||
// A mapping from element name to child policy.
|
||||
private Map childPolicies = new HashMap();
|
||||
|
||||
// A mapping from element name to the permissible number of
|
||||
// children. Values in this map are length-two integer arrays; the
|
||||
// first index is the minimum bound, the second index is the maximum
|
||||
// bound.
|
||||
private Map childRanges = new HashMap();
|
||||
|
||||
private String resourceBaseName;
|
||||
|
||||
// Package-private so that it may be used in IIOMetadataNode.
|
||||
static class IIOMetadataNodeAttr extends IIOMetadataNode
|
||||
implements Attr
|
||||
{
|
||||
protected Element owner;
|
||||
protected String name;
|
||||
protected int dataType;
|
||||
protected boolean required;
|
||||
protected String defaultValue;
|
||||
|
||||
public IIOMetadataNodeAttr (Element owner,
|
||||
String name,
|
||||
String defaultValue)
|
||||
{
|
||||
this (owner, name, IIOMetadataFormat.DATATYPE_STRING,
|
||||
true, defaultValue);
|
||||
}
|
||||
|
||||
public IIOMetadataNodeAttr (Element owner,
|
||||
String name,
|
||||
int dataType,
|
||||
boolean required,
|
||||
String defaultValue)
|
||||
{
|
||||
this.owner = owner;
|
||||
this.name = name;
|
||||
this.dataType = dataType;
|
||||
this.required = required;
|
||||
this.defaultValue = defaultValue;
|
||||
}
|
||||
|
||||
public String getName ()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
public Element getOwnerElement ()
|
||||
{
|
||||
return owner;
|
||||
}
|
||||
|
||||
public int getDataType ()
|
||||
{
|
||||
return dataType;
|
||||
}
|
||||
|
||||
public TypeInfo getSchemaTypeInfo ()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean getSpecified ()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getValue ()
|
||||
{
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
public boolean isId()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setValue (String value)
|
||||
{
|
||||
}
|
||||
|
||||
// new methods
|
||||
|
||||
public boolean isRequired ()
|
||||
{
|
||||
return required;
|
||||
}
|
||||
}
|
||||
|
||||
private class IIOMetadataNodeAttrEnumerated extends IIOMetadataNodeAttr
|
||||
{
|
||||
protected List enumeratedValues;
|
||||
|
||||
public IIOMetadataNodeAttrEnumerated (Element owner,
|
||||
String name,
|
||||
int dataType,
|
||||
boolean required,
|
||||
String defaultValue,
|
||||
List enumeratedValues)
|
||||
{
|
||||
super (owner, name, dataType, required, defaultValue);
|
||||
this.enumeratedValues = new ArrayList (enumeratedValues);
|
||||
}
|
||||
|
||||
public Object[] getEnumerations ()
|
||||
{
|
||||
return enumeratedValues.toArray ();
|
||||
}
|
||||
}
|
||||
|
||||
private class IIOMetadataNodeAttrBounded extends IIOMetadataNodeAttr
|
||||
{
|
||||
protected String minValue;
|
||||
protected String maxValue;
|
||||
protected boolean minInclusive;
|
||||
protected boolean maxInclusive;
|
||||
|
||||
public IIOMetadataNodeAttrBounded (Element owner,
|
||||
String name,
|
||||
int dataType,
|
||||
boolean required,
|
||||
String defaultValue,
|
||||
String minValue,
|
||||
String maxValue,
|
||||
boolean minInclusive,
|
||||
boolean maxInclusive)
|
||||
{
|
||||
super (owner, name, dataType, required, defaultValue);
|
||||
this.minValue = minValue;
|
||||
this.maxValue = maxValue;
|
||||
this.minInclusive = minInclusive;
|
||||
this.maxInclusive = maxInclusive;
|
||||
}
|
||||
|
||||
public String getMinValue ()
|
||||
{
|
||||
return minValue;
|
||||
}
|
||||
|
||||
public String getMaxValue ()
|
||||
{
|
||||
return maxValue;
|
||||
}
|
||||
}
|
||||
|
||||
private class IIOMetadataNodeAttrList extends IIOMetadataNodeAttr
|
||||
{
|
||||
protected int listMinLength;
|
||||
protected int listMaxLength;
|
||||
|
||||
public IIOMetadataNodeAttrList (Element owner,
|
||||
String name,
|
||||
int dataType,
|
||||
boolean required,
|
||||
int listMinLength,
|
||||
int listMaxLength)
|
||||
{
|
||||
super (owner, name, dataType, required, null);
|
||||
this.listMinLength = listMinLength;
|
||||
this.listMaxLength = listMaxLength;
|
||||
}
|
||||
|
||||
public int getListMinLength ()
|
||||
{
|
||||
return listMinLength;
|
||||
}
|
||||
|
||||
public int getListMaxLength ()
|
||||
{
|
||||
return listMaxLength;
|
||||
}
|
||||
}
|
||||
|
||||
private class NodeObject
|
||||
{
|
||||
protected Element owner;
|
||||
protected Class classType;
|
||||
protected boolean required;
|
||||
protected Object defaultValue;
|
||||
protected int valueType;
|
||||
|
||||
public NodeObject (Element owner,
|
||||
Class classType,
|
||||
boolean required,
|
||||
Object defaultValue)
|
||||
{
|
||||
this.owner = owner;
|
||||
this.classType = classType;
|
||||
this.required = required;
|
||||
this.defaultValue = defaultValue;
|
||||
valueType = IIOMetadataFormat.VALUE_ARBITRARY;
|
||||
}
|
||||
|
||||
public int getValueType ()
|
||||
{
|
||||
return valueType;
|
||||
}
|
||||
|
||||
public Class getClassType ()
|
||||
{
|
||||
return classType;
|
||||
}
|
||||
|
||||
public Element getOwnerElement ()
|
||||
{
|
||||
return owner;
|
||||
}
|
||||
|
||||
public Object getDefaultValue ()
|
||||
{
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
public boolean isRequired ()
|
||||
{
|
||||
return required;
|
||||
}
|
||||
}
|
||||
|
||||
private class NodeObjectEnumerated extends NodeObject
|
||||
{
|
||||
protected List enumeratedValues;
|
||||
|
||||
public NodeObjectEnumerated (Element owner,
|
||||
Class classType,
|
||||
boolean required,
|
||||
Object defaultValue,
|
||||
List enumeratedValues)
|
||||
{
|
||||
super (owner, classType, false, defaultValue);
|
||||
this.enumeratedValues = enumeratedValues;
|
||||
valueType = IIOMetadataFormat.VALUE_ENUMERATION;
|
||||
}
|
||||
|
||||
public Object[] getEnumerations ()
|
||||
{
|
||||
return enumeratedValues.toArray();
|
||||
}
|
||||
}
|
||||
|
||||
private class NodeObjectBounded extends NodeObject
|
||||
{
|
||||
protected Comparable minValue;
|
||||
protected Comparable maxValue;
|
||||
protected boolean minInclusive;
|
||||
protected boolean maxInclusive;
|
||||
|
||||
public NodeObjectBounded (Element owner,
|
||||
Class classType,
|
||||
Object defaultValue,
|
||||
Comparable minValue,
|
||||
Comparable maxValue,
|
||||
boolean minInclusive,
|
||||
boolean maxInclusive)
|
||||
{
|
||||
super (owner, classType, false, defaultValue);
|
||||
this.minValue = minValue;
|
||||
this.maxValue = maxValue;
|
||||
this.minInclusive = minInclusive;
|
||||
this.maxInclusive = maxInclusive;
|
||||
if (minInclusive)
|
||||
{
|
||||
if (maxInclusive)
|
||||
valueType = IIOMetadataFormat.VALUE_RANGE_MIN_MAX_INCLUSIVE;
|
||||
else
|
||||
valueType = IIOMetadataFormat.VALUE_RANGE_MIN_INCLUSIVE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (maxInclusive)
|
||||
valueType = IIOMetadataFormat.VALUE_RANGE_MAX_INCLUSIVE;
|
||||
else
|
||||
valueType = IIOMetadataFormat.VALUE_RANGE;
|
||||
}
|
||||
}
|
||||
|
||||
public Comparable getMinValue ()
|
||||
{
|
||||
return minValue;
|
||||
}
|
||||
|
||||
public Comparable getMaxValue ()
|
||||
{
|
||||
return maxValue;
|
||||
}
|
||||
}
|
||||
|
||||
private class NodeObjectArray extends NodeObject
|
||||
{
|
||||
protected Integer arrayMinLength;
|
||||
protected Integer arrayMaxLength;
|
||||
|
||||
public NodeObjectArray (Element owner,
|
||||
Class classType,
|
||||
int arrayMinLength,
|
||||
int arrayMaxLength)
|
||||
{
|
||||
super (owner, classType, false, null);
|
||||
this.arrayMinLength = new Integer (arrayMinLength);
|
||||
this.arrayMaxLength = new Integer (arrayMaxLength);
|
||||
valueType = IIOMetadataFormat.VALUE_LIST;
|
||||
}
|
||||
|
||||
public Comparable getArrayMinLength ()
|
||||
{
|
||||
return arrayMinLength;
|
||||
}
|
||||
|
||||
public Comparable getArrayMaxLength ()
|
||||
{
|
||||
return arrayMaxLength;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a blank IIOMetadataFormatImpl with the given root name
|
||||
* and child policy.
|
||||
*
|
||||
* @param rootName the root element name
|
||||
* @param childPolicy the child policy of the root element
|
||||
*
|
||||
* @exception IllegalArgumentException if rootName is null
|
||||
* @exception IllegalArgumentException if childPolicy is
|
||||
* CHILD_POLICY_REPEAT or if childPolicy is not a CHILD_POLICY
|
||||
* constant
|
||||
*/
|
||||
public IIOMetadataFormatImpl (String rootName, int childPolicy)
|
||||
{
|
||||
if (rootName == null)
|
||||
throw new IllegalArgumentException ("null argument");
|
||||
|
||||
if (childPolicy < IIOMetadataFormat.CHILD_POLICY_ALL
|
||||
|| childPolicy > IIOMetadataFormat.CHILD_POLICY_SOME
|
||||
|| childPolicy == IIOMetadataFormat.CHILD_POLICY_REPEAT)
|
||||
throw new IllegalArgumentException ("wrong child policy");
|
||||
|
||||
nodes.put (rootName, new IIOMetadataNode (rootName));
|
||||
childPolicies.put (rootName, new Integer (childPolicy));
|
||||
this.rootName = rootName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a blank IIOMetadataFormatImpl with the given root name,
|
||||
* a child policy of CHILD_POLICY_REPEAT and the given minimum and
|
||||
* maximum limits on the number of root element children.
|
||||
*
|
||||
* @param rootName the root element name
|
||||
* @param minChildren the minimum number of children that this node
|
||||
* can have
|
||||
* @param maxChildren the maximum number of children that this node
|
||||
* can have
|
||||
*
|
||||
* @exception IllegalArgumentException if rootName is null
|
||||
* @exception IllegalArgumentException if minChildren is less than
|
||||
* zero or greater than maxChildren
|
||||
*/
|
||||
public IIOMetadataFormatImpl (String rootName,
|
||||
int minChildren,
|
||||
int maxChildren)
|
||||
{
|
||||
if (rootName == null)
|
||||
throw new IllegalArgumentException ("null argument");
|
||||
|
||||
if (minChildren < 0 || maxChildren < minChildren)
|
||||
throw new IllegalArgumentException ("invalid min or max children argument");
|
||||
|
||||
nodes.put (rootName, new IIOMetadataNode (rootName));
|
||||
childPolicies.put (rootName, new Integer (IIOMetadataFormat.CHILD_POLICY_REPEAT));
|
||||
childRanges.put (rootName, new int [] { minChildren, maxChildren });
|
||||
this.rootName = rootName;
|
||||
}
|
||||
|
||||
protected void addAttribute (String elementName,
|
||||
String attrName,
|
||||
int dataType,
|
||||
boolean required,
|
||||
String defaultValue)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
node.setAttributeNode (new IIOMetadataNodeAttr (node,
|
||||
attrName,
|
||||
dataType,
|
||||
required,
|
||||
defaultValue));
|
||||
}
|
||||
|
||||
protected void addAttribute (String elementName,
|
||||
String attrName,
|
||||
int dataType,
|
||||
boolean required,
|
||||
String defaultValue,
|
||||
List enumeratedValues)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
node.setAttributeNode (new IIOMetadataNodeAttrEnumerated (node,
|
||||
attrName,
|
||||
dataType,
|
||||
required,
|
||||
defaultValue,
|
||||
enumeratedValues));
|
||||
}
|
||||
|
||||
protected void addAttribute (String elementName,
|
||||
String attrName,
|
||||
int dataType,
|
||||
boolean required,
|
||||
String defaultValue,
|
||||
String minValue,
|
||||
String maxValue,
|
||||
boolean minInclusive,
|
||||
boolean maxInclusive)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
node.setAttributeNode (new IIOMetadataNodeAttrBounded (node,
|
||||
attrName,
|
||||
dataType,
|
||||
required,
|
||||
defaultValue,
|
||||
minValue,
|
||||
maxValue,
|
||||
minInclusive,
|
||||
maxInclusive));
|
||||
}
|
||||
|
||||
protected void addAttribute (String elementName,
|
||||
String attrName,
|
||||
int dataType,
|
||||
boolean required,
|
||||
int listMinLength,
|
||||
int listMaxLength)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
node.setAttributeNode (new IIOMetadataNodeAttrList (node,
|
||||
attrName,
|
||||
dataType,
|
||||
required,
|
||||
listMinLength,
|
||||
listMaxLength));
|
||||
}
|
||||
|
||||
protected void addBooleanAttribute (String elementName,
|
||||
String attrName,
|
||||
boolean hasDefaultValue,
|
||||
boolean defaultValue)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
|
||||
List enumeratedValues = new ArrayList();
|
||||
enumeratedValues.add ("TRUE");
|
||||
enumeratedValues.add ("FALSE");
|
||||
|
||||
node.setAttributeNode (new IIOMetadataNodeAttrEnumerated (node,
|
||||
attrName,
|
||||
IIOMetadataFormat.DATATYPE_BOOLEAN,
|
||||
hasDefaultValue,
|
||||
defaultValue ? "TRUE" : "FALSE",
|
||||
enumeratedValues));
|
||||
}
|
||||
|
||||
protected void addChildElement (String elementName, String parentName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (parentName);
|
||||
|
||||
node.appendChild (new IIOMetadataNode (elementName));
|
||||
childPolicies.put (elementName, new Integer (IIOMetadataFormat.CHILD_POLICY_REPEAT));
|
||||
}
|
||||
|
||||
protected void addElement (String elementName, String parentName, int childPolicy)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (parentName);
|
||||
|
||||
node.appendChild (new IIOMetadataNode (elementName));
|
||||
childPolicies.put (elementName, new Integer (childPolicy));
|
||||
}
|
||||
|
||||
protected void addElement (String elementName, String parentName,
|
||||
int minChildren, int maxChildren)
|
||||
{
|
||||
addChildElement (elementName, parentName);
|
||||
childRanges.put (elementName, new int [] { minChildren, maxChildren });
|
||||
}
|
||||
|
||||
private void addNodeObject (IIOMetadataNode node, NodeObject o)
|
||||
{
|
||||
node.setUserObject (o);
|
||||
}
|
||||
|
||||
private NodeObject getNodeObject (IIOMetadataNode node)
|
||||
{
|
||||
return (NodeObject) node.getUserObject ();
|
||||
}
|
||||
|
||||
private void removeNodeObject (IIOMetadataNode node)
|
||||
{
|
||||
node.setUserObject (null);
|
||||
}
|
||||
|
||||
protected void addObjectValue (String elementName, Class classType,
|
||||
boolean required, Object defaultValue)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
addNodeObject (node, new NodeObject (node,
|
||||
classType,
|
||||
required,
|
||||
defaultValue));
|
||||
}
|
||||
|
||||
protected void addObjectValue (String elementName, Class classType,
|
||||
boolean required, Object defaultValue,
|
||||
List enumeratedValues)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
addNodeObject (node, new NodeObjectEnumerated (node,
|
||||
classType,
|
||||
required,
|
||||
defaultValue,
|
||||
enumeratedValues));
|
||||
}
|
||||
|
||||
protected void addObjectValue (String elementName, Class classType,
|
||||
Object defaultValue,
|
||||
Comparable minValue,
|
||||
Comparable maxValue,
|
||||
boolean minInclusive,
|
||||
boolean maxInclusive)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
addNodeObject (node, new NodeObjectBounded (node,
|
||||
classType,
|
||||
defaultValue,
|
||||
minValue,
|
||||
maxValue,
|
||||
minInclusive,
|
||||
maxInclusive));
|
||||
}
|
||||
|
||||
protected void addObjectValue (String elementName, Class classType,
|
||||
int arrayMinLength, int arrayMaxLength)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
addNodeObject (node, new NodeObjectArray (node,
|
||||
classType,
|
||||
arrayMinLength,
|
||||
arrayMaxLength));
|
||||
}
|
||||
|
||||
public String getRootName ()
|
||||
{
|
||||
return rootName;
|
||||
}
|
||||
|
||||
protected String getResourceBaseName ()
|
||||
{
|
||||
return resourceBaseName;
|
||||
}
|
||||
|
||||
public static IIOMetadataFormat getStandardFormatInstance ()
|
||||
{
|
||||
// FIXME: populate this with the standard metadata format
|
||||
return new IIOMetadataFormatImpl (standardMetadataFormatName,
|
||||
IIOMetadataFormat.CHILD_POLICY_ALL)
|
||||
{
|
||||
public boolean canNodeAppear (String elementName,
|
||||
ImageTypeSpecifier specifier)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public abstract boolean canNodeAppear (String elementName,
|
||||
ImageTypeSpecifier specifier);
|
||||
|
||||
protected void removeAttribute (String elementName,
|
||||
String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
node.removeAttribute (attrName);
|
||||
}
|
||||
|
||||
protected void removeElement (String elementName)
|
||||
{
|
||||
nodes.remove (elementName);
|
||||
}
|
||||
|
||||
protected void removeObjectValue (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
removeNodeObject (node);
|
||||
}
|
||||
|
||||
protected void setResourceBaseName (String resourceBaseName)
|
||||
{
|
||||
this.resourceBaseName = resourceBaseName;
|
||||
}
|
||||
|
||||
public int getAttributeDataType (String elementName, String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
IIOMetadataNodeAttr attr = (IIOMetadataNodeAttr) node.getAttributeNode (attrName);
|
||||
return attr.getDataType ();
|
||||
}
|
||||
|
||||
public String getAttributeDefaultValue (String elementName, String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
IIOMetadataNodeAttr attr = (IIOMetadataNodeAttr) node.getAttributeNode (attrName);
|
||||
return attr.getValue();
|
||||
}
|
||||
|
||||
public String getAttributeDescription (String elementName, String attrName, Locale locale)
|
||||
{
|
||||
return getDescription (elementName + "/" + attrName, locale);
|
||||
}
|
||||
|
||||
public String[] getAttributeEnumerations (String elementName, String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
IIOMetadataNodeAttrEnumerated attr =
|
||||
(IIOMetadataNodeAttrEnumerated) node.getAttributeNode (attrName);
|
||||
|
||||
Object[] attrEnums = attr.getEnumerations();
|
||||
|
||||
String[] attrNames = new String[attrEnums.length];
|
||||
|
||||
for (int i = 0; i < attrEnums.length; i++)
|
||||
{
|
||||
attrNames[i] = (String) attrEnums[i];
|
||||
}
|
||||
|
||||
return attrNames;
|
||||
}
|
||||
|
||||
public int getAttributeListMaxLength (String elementName, String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
IIOMetadataNodeAttrList attr =
|
||||
(IIOMetadataNodeAttrList) node.getAttributeNode (attrName);
|
||||
return attr.getListMaxLength();
|
||||
}
|
||||
|
||||
public int getAttributeListMinLength (String elementName, String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
IIOMetadataNodeAttrList attr =
|
||||
(IIOMetadataNodeAttrList) node.getAttributeNode (attrName);
|
||||
return attr.getListMinLength();
|
||||
}
|
||||
|
||||
public String getAttributeMaxValue (String elementName, String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
IIOMetadataNodeAttrBounded attr =
|
||||
(IIOMetadataNodeAttrBounded) node.getAttributeNode (attrName);
|
||||
return attr.getMaxValue();
|
||||
}
|
||||
|
||||
public String getAttributeMinValue (String elementName, String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
IIOMetadataNodeAttrBounded attr =
|
||||
(IIOMetadataNodeAttrBounded) node.getAttributeNode (attrName);
|
||||
return attr.getMinValue();
|
||||
}
|
||||
|
||||
public String[] getAttributeNames (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
|
||||
NamedNodeMap attrNodes = node.getAttributes();
|
||||
|
||||
String[] attrNames = new String[attrNodes.getLength()];
|
||||
|
||||
for (int i = 0; i < attrNodes.getLength(); i++)
|
||||
{
|
||||
attrNames[i] = attrNodes.item (i).getLocalName();
|
||||
}
|
||||
|
||||
return attrNames;
|
||||
}
|
||||
|
||||
public int getAttributeValueType (String elementName, String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
IIOMetadataNodeAttr attr = (IIOMetadataNodeAttr) node.getAttributeNode (attrName);
|
||||
return attr.getDataType();
|
||||
}
|
||||
|
||||
public String[] getChildNames (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
|
||||
NodeList childNodes = node.getChildNodes();
|
||||
|
||||
String[] childNames = new String[childNodes.getLength()];
|
||||
|
||||
for (int i = 0; i < childNodes.getLength(); i++)
|
||||
{
|
||||
childNames[i] = childNodes.item (i).getLocalName();
|
||||
}
|
||||
|
||||
return childNames;
|
||||
}
|
||||
|
||||
public int getChildPolicy (String elementName)
|
||||
{
|
||||
return ((Integer) childPolicies.get (elementName)).intValue();
|
||||
}
|
||||
|
||||
private String getDescription (String resourceName, Locale locale)
|
||||
{
|
||||
if (resourceBaseName == null)
|
||||
return null;
|
||||
|
||||
Locale l = locale;
|
||||
|
||||
if (l == null)
|
||||
l = Locale.getDefault();
|
||||
|
||||
ResourceBundle bundle = ResourceBundle.getBundle (resourceBaseName, locale);
|
||||
|
||||
String desc = null;
|
||||
|
||||
if (bundle == null)
|
||||
{
|
||||
try
|
||||
{
|
||||
desc = bundle.getString (resourceName);
|
||||
}
|
||||
catch (MissingResourceException e)
|
||||
{
|
||||
desc = null;
|
||||
}
|
||||
}
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
public String getElementDescription (String elementName, Locale locale)
|
||||
{
|
||||
return getDescription (elementName, locale);
|
||||
}
|
||||
|
||||
public int getElementMaxChildren (String elementName)
|
||||
{
|
||||
return ((int[]) childRanges.get (elementName))[1];
|
||||
}
|
||||
|
||||
public int getElementMinChildren (String elementName)
|
||||
{
|
||||
return ((int[]) childRanges.get (elementName))[0];
|
||||
}
|
||||
|
||||
public int getObjectArrayMaxLength (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
return ((Integer) ((NodeObjectArray) getNodeObject (node)).getArrayMaxLength ()).intValue();
|
||||
}
|
||||
|
||||
public int getObjectArrayMinLength (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
return ((Integer) ((NodeObjectArray) getNodeObject (node)).getArrayMinLength ()).intValue();
|
||||
}
|
||||
|
||||
public Class getObjectClass (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
return getNodeObject (node).getClassType ();
|
||||
}
|
||||
|
||||
public Object getObjectDefaultValue (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
return getNodeObject (node).getDefaultValue ();
|
||||
}
|
||||
|
||||
public Object[] getObjectEnumerations (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
return ((NodeObjectEnumerated) getNodeObject (node)).getEnumerations ();
|
||||
}
|
||||
|
||||
public Comparable getObjectMaxValue (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
return ((NodeObjectBounded) getNodeObject (node)).getMaxValue ();
|
||||
}
|
||||
|
||||
public Comparable getObjectMinValue (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
return ((NodeObjectBounded) getNodeObject (node)).getMinValue ();
|
||||
}
|
||||
|
||||
public int getObjectValueType (String elementName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
NodeObject n = getNodeObject (node);
|
||||
|
||||
if (n == null)
|
||||
return IIOMetadataFormat.VALUE_NONE;
|
||||
else
|
||||
return n.getValueType ();
|
||||
}
|
||||
|
||||
public boolean isAttributeRequired (String elementName, String attrName)
|
||||
{
|
||||
IIOMetadataNode node = (IIOMetadataNode) nodes.get (elementName);
|
||||
return ((IIOMetadataNodeAttr) node.getAttributeNode (attrName)).isRequired();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue