📄 xmlelement.java
字号:
* <code>getAttribute("attr", mapping, defaultKey, false)</code> returns
* <code>"1"</code>.
*
* @param name
* The name of the attribute.
* @param valueSet
* Hashtable mapping keys to values.
* @param defaultKey
* Key to use if the attribute is missing.
* @param allowLiterals
* <code>true</code> if literals are valid.
*
* </dl><dl><dt><b>Preconditions:</b></dt><dd>
* <ul><li><code>name != null</code>
* <li><code>name</code> is a valid XML identifier
* <li><code>valueSet</code> != null
* <li>the keys of <code>valueSet</code> are strings
* <li>the values of <code>valueSet</code> are strings
* </ul></dd></dl><dl>
*
* @return attribute
* @see XMLElement#setAttribute(java.lang.String, java.lang.Object)
* setAttribute(String, Object)
* @see XMLElement#removeAttribute(java.lang.String)
* removeAttribute(String)
* @see XMLElement#enumerateAttributeNames()
* @see XMLElement#getStringAttribute(java.lang.String)
* getStringAttribute(String)
* @see XMLElement#getStringAttribute(java.lang.String,
* java.lang.String)
* getStringAttribute(String, String)
*/
public String getStringAttribute(String name,
Hashtable valueSet,
String defaultKey,
boolean allowLiterals)
{
return (String) this.getAttribute(name, valueSet, defaultKey,
allowLiterals);
}
/**
* Returns an attribute of the element.
* If the attribute doesn't exist, <code>0</code> is returned.
*
* @param name The name of the attribute.
*
* </dl><dl><dt><b>Preconditions:</b></dt><dd>
* <ul><li><code>name != null</code>
* <li><code>name</code> is a valid XML identifier
* </ul></dd></dl><dl>
*
* @return attribute
* @see XMLElement#setIntAttribute(java.lang.String, int)
* setIntAttribute(String, int)
* @see XMLElement#enumerateAttributeNames()
* @see XMLElement#getIntAttribute(java.lang.String, int)
* getIntAttribute(String, int)
* @see XMLElement#getIntAttribute(java.lang.String,
* java.util.Hashtable,
* java.lang.String, boolean)
* getIntAttribute(String, Hashtable, String, boolean)
*/
public int getIntAttribute(String name)
{
return this.getIntAttribute(name, 0);
}
/**
* Returns an attribute of the element.
* If the attribute doesn't exist, <code>defaultValue</code> is returned.
*
* @param name The name of the attribute.
* @param defaultValue Key to use if the attribute is missing.
*
* </dl><dl><dt><b>Preconditions:</b></dt><dd>
* <ul><li><code>name != null</code>
* <li><code>name</code> is a valid XML identifier
* </ul></dd></dl><dl>
*
* @return attribute
* @see XMLElement#setIntAttribute(java.lang.String, int)
* setIntAttribute(String, int)
* @see XMLElement#enumerateAttributeNames()
* @see XMLElement#getIntAttribute(java.lang.String)
* getIntAttribute(String)
* @see XMLElement#getIntAttribute(java.lang.String,
* java.util.Hashtable,
* java.lang.String, boolean)
* getIntAttribute(String, Hashtable, String, boolean)
*/
public int getIntAttribute(String name,
int defaultValue)
{
if (this.ignoreCase) {
name = name.toUpperCase();
}
String value = (String) this.attributes.get(name);
if (value == null) {
return defaultValue;
} else {
try {
return Integer.parseInt(value);
} catch (NumberFormatException e) {
throw this.invalidValue(name, value);
}
}
}
/**
* Returns an attribute by looking up a key in a hashtable.
* If the attribute doesn't exist, the value corresponding to defaultKey
* is returned.
* <P>
* As an example, if valueSet contains the mapping <code>"one" => 1</code>
* and the element contains the attribute <code>attr="one"</code>, then
* <code>getIntAttribute("attr", mapping, defaultKey, false)</code> returns
* <code>1</code>.
*
* @param name
* The name of the attribute.
* @param valueSet
* Hashtable mapping keys to values.
* @param defaultKey
* Key to use if the attribute is missing.
* @param allowLiteralNumbers
* <code>true</code> if literal numbers are valid.
*
* </dl><dl><dt><b>Preconditions:</b></dt><dd>
* <ul><li><code>name != null</code>
* <li><code>name</code> is a valid XML identifier
* <li><code>valueSet</code> != null
* <li>the keys of <code>valueSet</code> are strings
* <li>the values of <code>valueSet</code> are Integer objects
* <li><code>defaultKey</code> is either <code>null</code>, a
* key in <code>valueSet</code> or an integer.
* </ul></dd></dl><dl>
*
* @return attribute
* @see XMLElement#setIntAttribute(java.lang.String, int)
* setIntAttribute(String, int)
* @see XMLElement#enumerateAttributeNames()
* @see XMLElement#getIntAttribute(java.lang.String)
* getIntAttribute(String)
* @see XMLElement#getIntAttribute(java.lang.String, int)
* getIntAttribute(String, int)
*/
public int getIntAttribute(String name,
Hashtable valueSet,
String defaultKey,
boolean allowLiteralNumbers)
{
if (this.ignoreCase) {
name = name.toUpperCase();
}
Object key = this.attributes.get(name);
Integer result;
if (key == null) {
key = defaultKey;
}
try {
result = (Integer) valueSet.get(key);
} catch (ClassCastException e) {
throw this.invalidValueSet(name);
}
if (result == null) {
if (! allowLiteralNumbers) {
throw this.invalidValue(name, (String) key);
}
try {
result = Integer.valueOf((String) key);
} catch (NumberFormatException e) {
throw this.invalidValue(name, (String) key);
}
}
return result.intValue();
}
/**
* Returns an attribute of the element.
* If the attribute doesn't exist, <code>0.0</code> is returned.
*
* @param name The name of the attribute.
*
* </dl><dl><dt><b>Preconditions:</b></dt><dd>
* <ul><li><code>name != null</code>
* <li><code>name</code> is a valid XML identifier
* </ul></dd></dl><dl>
*
* @return attribute
* @see XMLElement#setDoubleAttribute(java.lang.String, double)
* setDoubleAttribute(String, double)
* @see XMLElement#enumerateAttributeNames()
* @see XMLElement#getDoubleAttribute(java.lang.String, double)
* getDoubleAttribute(String, double)
* @see XMLElement#getDoubleAttribute(java.lang.String,
* java.util.Hashtable,
* java.lang.String, boolean)
* getDoubleAttribute(String, Hashtable, String, boolean)
*/
public double getDoubleAttribute(String name)
{
return this.getDoubleAttribute(name, 0.);
}
/**
* Returns an attribute of the element.
* If the attribute doesn't exist, <code>defaultValue</code> is returned.
*
* @param name The name of the attribute.
* @param defaultValue Key to use if the attribute is missing.
*
* </dl><dl><dt><b>Preconditions:</b></dt><dd>
* <ul><li><code>name != null</code>
* <li><code>name</code> is a valid XML identifier
* </ul></dd></dl><dl>
*
* @return attribute
* @see XMLElement#setDoubleAttribute(java.lang.String, double)
* setDoubleAttribute(String, double)
* @see XMLElement#enumerateAttributeNames()
* @see XMLElement#getDoubleAttribute(java.lang.String)
* getDoubleAttribute(String)
* @see XMLElement#getDoubleAttribute(java.lang.String,
* java.util.Hashtable,
* java.lang.String, boolean)
* getDoubleAttribute(String, Hashtable, String, boolean)
*/
public double getDoubleAttribute(String name,
double defaultValue)
{
if (this.ignoreCase) {
name = name.toUpperCase();
}
String value = (String) this.attributes.get(name);
if (value == null) {
return defaultValue;
} else {
try {
return Double.valueOf(value).doubleValue();
} catch (NumberFormatException e) {
throw this.invalidValue(name, value);
}
}
}
/**
* Returns an attribute by looking up a key in a hashtable.
* If the attribute doesn't exist, the value corresponding to defaultKey
* is returned.
* <P>
* As an example, if valueSet contains the mapping <code>"one" =>
* 1.0</code>
* and the element contains the attribute <code>attr="one"</code>, then
* <code>getDoubleAttribute("attr", mapping, defaultKey, false)</code>
* returns <code>1.0</code>.
*
* @param name
* The name of the attribute.
* @param valueSet
* Hashtable mapping keys to values.
* @param defaultKey
* Key to use if the attribute is missing.
* @param allowLiteralNumbers
* <code>true</code> if literal numbers are valid.
*
* </dl><dl><dt><b>Preconditions:</b></dt><dd>
* <ul><li><code>name != null</code>
* <li><code>name</code> is a valid XML identifier
* <li><code>valueSet != null</code>
* <li>the keys of <code>valueSet</code> are strings
* <li>the values of <code>valueSet</code> are Double objects
* <li><code>defaultKey</code> is either <code>null</code>, a
* key in <code>valueSet</code> or a double.
* </ul></dd></dl><dl>
*
* @return attribute
* @see XMLElement#setDoubleAttribute(java.lang.String, double)
* setDoubleAttribute(String, double)
* @see XMLElement#enumerateAttributeNames()
* @see XMLElement#getDoubleAttribute(java.lang.String)
* getDoubleAttribute(String)
* @see XMLElement#getDoubleAttribute(java.lang.String, double)
* getDoubleAttribute(String, double)
*/
public double getDoubleAttribute(String name,
Hashtable valueSet,
String defaultKey,
boolean allowLiteralNumbers)
{
if (this.ignoreCase) {
name = name.toUpperCase();
}
Object key = this.attributes.get(name);
Double result;
if (key == null) {
key = defaultKey;
}
try {
result = (Double) valueSet.get(key);
} catch (ClassCastException e) {
throw this.invalidValueSet(name);
}
if (result == null) {
if (! allowLiteralNumbers) {
throw this.invalidValue(name, (String) key);
}
try {
result = Double.valueOf((String) key);
} catch (NumberFormatException e) {
throw this.invalidValue(name, (String) key);
}
}
return result.doubleValue();
}
/**
* Returns an attribute of the element.
* If the attribute doesn't exist, <code>defaultValue</code> is returned.
* If the value of the attribute is equal to <code>trueValue</code>,
* <code>true</code> is returned.
* If the value of the attribute is equal to <code>falseValue</code>,
* <code>false</code> is returned.
* If the value doesn't match <code>trueValue</code> or
* <code>falseValue</code>, an exception is thrown.
*
* @param name The name of the attribute.
* @param trueValue The value associated with <code>true</code>.
* @param falseValue The value associated with <code>true</code>.
* @param defaultValue Value to use if the attribute is missing.
* @return attribute
*
* </dl><dl><dt><b>Preconditions:</b></dt><dd>
* <ul><li><code>name != null</code>
* <li><code>name</code> is a valid XML identifier
* <li><code>trueValue</code> and <code>falseValue</code>
* are different strings.
* </ul></dd></dl><dl>
*
* @see XMLElement#setAttribute(java.lang.String, java.lang.Object)
* setAttribute(String, Object)
* @see XMLElement#removeAttribute(java.lang.String)
* removeAttribute(String)
* @see XMLElement#enumerateAttributeNames()
*/
public boolean getBooleanAttribute(String name,
String trueValue,
String falseValue,
boolean defaultValue)
{
if (this.ignoreCase) {
name = name.toUpperCase();
}
Object value = this.attributes.get(name);
if (value == null) {
return defaultValue;
} else if (value.equals(trueValue)) {
return true;
} else if (value.equals(falseValue)) {
return false;
} else {
throw this.invalidValue(name, (String) value);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -