public String getValue() {
return unescape(value);
}
-
+
/**
- * Return the RAW value of this {@link Data}
+ * Change the value of this {@link Data}
*
- * @return the RAW value
+ * @param value
+ * the new value
+ */
+ public void setValue(String value) {
+ setRawValue(escape(value));
+ }
+
+ /**
+ * Return the raw value of this {@link Data}
+ *
+ * @return the raw value
*/
public String getRawValue() {
return value;
}
/**
- * Change the value of this {@link Data}
+ * Change the raw value of this {@link Data}
*
* @param value
- * the new value
+ * the new raw value
*/
- public void setValue(String value) {
- value = escape(value);
-
+ public void setRawValue(String value) {
if ((value == null && this.value != null)
|| (value != null && !value.equals(this.value))) {
this.value = value;
}
/**
- * Check if this {@link Data} has the "preferred" flag.
+ * Return the preferred value of this {@link Data}, or
+ * {@link Integer#MAX_VALUE} if none.
*
- * @return TRUE if it has
+ * @return the preferred value
*/
- public boolean isPreferred() {
+ public int getPreferred() {
for (TypeInfo type : this) {
- if (type.getName().equals("TYPE") && type.getValue().equals("pref")) {
- return true;
+ if (type.getName().equals("PRE")) {
+ try {
+ return Integer.parseInt(type.getValue());
+ } catch (NumberFormatException e) {
+ e.printStackTrace();
+ }
}
}
- return false;
+ return Integer.MAX_VALUE;
}
/**
for (int i = 0; i < value.length(); i++) {
if (value.charAt(i) == sep
&& (i == 0 || value.charAt(i - 1) != '\\')) {
- rep.add(value.substring(last, i - last));
+ rep.add(value.substring(last, i));
+ last = i + 1;
}
}
- rep.add(value.substring(last));
+ if (last < value.length())
+ rep.add(value.substring(last));
}
return rep;