package be.nikiroo.jvcard;
-public class TypeInfo {
+/**
+ * This class describes a type, that is, a key-value pair.
+ *
+ * @author niki
+ *
+ */
+public class TypeInfo extends BaseClass<TypeInfo> {
private String name;
private String value;
- private Data parent;
- private boolean dirty;
+ /**
+ * Create a new {@link TypeInfo}.
+ *
+ * @param name
+ * the name of this {@link TypeInfo} (<b>MUST NOT</b> be NULL)
+ * @param value
+ * its value (<b>MUST NOT</b> be NULL)
+ */
public TypeInfo(String name, String value) {
- this.name = name;
- this.value = value;
+ super(null);
+
+ this.name = name.toUpperCase();
+ this.value = escape(value.toString()); // crash NOW if null
}
+ /**
+ * Return the name.
+ *
+ * @return the name
+ */
public String getName() {
return name;
}
- public String getValue() {
- return value;
- }
-
/**
- * Check if this {@link TypeInfo} has unsaved changes.
+ * Return the value.
*
- * @return TRUE if it has
+ * @return the value
*/
- public boolean isDirty() {
- return dirty;
+ public String getValue() {
+ return unescape(value);
}
/**
- * Notify that this element has unsaved changes, and notify its parent of
- * the same if any.
+ * Return the RAW value
+ *
+ * @return the RAW value
*/
- protected void setDirty() {
- this.dirty = true;
- if (this.parent != null)
- this.parent.setDirty();
+ public String getRawValue() {
+ return value;
}
- /**
- * Notify this element <i>and all its descendants</i> that it is in pristine
- * state (as opposed to dirty).
- */
- void setPristine() {
- dirty = false;
+ @Override
+ public String getId() {
+ return "" + name;
}
- /**
- * Set the parent of this {@link TypeInfo}.
- *
- * @param parent
- * the new parent
- */
- void setParent(Data parent) {
- this.parent = parent;
+ @Override
+ public String getState() {
+ return ("" + name + value).replace(' ', '_');
}
-}
\ No newline at end of file
+}