Compat Java 1.5+ (again)
[jvcard.git] / src / be / nikiroo / jvcard / TypeInfo.java
index b3851b20e5cbca48437185c71696bd0857bc5407..847cc25189a65ee1e58291fce5d7813193b11e83 100644 (file)
@@ -1,19 +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;
 
+       /**
+        * 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;
+               super(null);
+
+               this.name = name.toUpperCase();
+               this.value = value.toString(); // crash NOW if null
        }
 
+       /**
+        * Return the name.
+        * 
+        * @return the name
+        */
        public String getName() {
                return name;
        }
 
+       /**
+        * Return the value.
+        * 
+        * @return the value
+        */
        public String getValue() {
                return value;
        }
-}
\ No newline at end of file
+
+       @Override
+       public String getId() {
+               return "" + name;
+       }
+
+       @Override
+       public String getState() {
+               return ("" + name + value).replace(' ', '_');
+       }
+}