package be.nikiroo.jvcard;
-public class TypeInfo {
+/**
+ * This class describes a type, that is, a key-value pair.
+ *
+ * @author niki
+ *
+ */
+@SuppressWarnings("rawtypes")
+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)
+ */
+ @SuppressWarnings("unchecked")
public TypeInfo(String name, String value) {
- this.name = name;
- this.value = value;
- }
-
- public String getName() {
- return name;
- }
+ super(null);
- public String getValue() {
- return value;
+ this.name = name.toUpperCase();
+ this.value = value.toString(); // crash NOW if null
}
/**
- * Check if this {@link TypeInfo} has unsaved changes.
+ * Return the name.
*
- * @return TRUE if it has
+ * @return the name
*/
- public boolean isDirty() {
- return dirty;
+ public String getName() {
+ return name;
}
/**
- * Notify that this element has unsaved changes, and notify its parent of
- * the same if any.
+ * Return the value.
+ *
+ * @return the value
*/
- protected void setDirty() {
- this.dirty = true;
- if (this.parent != null)
- this.parent.setDirty();
+ public String getValue() {
+ 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
+}