Compat Java 1.5+ (again)
[jvcard.git] / src / be / nikiroo / jvcard / TypeInfo.java
index 26314fa48a016603a9b3d9066a8d6d59f13a2c90..847cc25189a65ee1e58291fce5d7813193b11e83 100644 (file)
@@ -1,58 +1,57 @@
 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
+}