Refresh data on "Back", allow configuration of View + border
[jvcard.git] / src / be / nikiroo / jvcard / Data.java
index ef44813a0fca7d62dcaf1ed032434c97a0960be2..63362332004fede408a44ee37d2fc3460fa0a64d 100644 (file)
@@ -30,17 +30,17 @@ public class Data extends BaseClass<TypeInfo> {
         * @param types
         *            the types of this {@link Data}
         * @param name
-        *            its name
+        *            its name (<b>MUST NOT</b> be NULL)
         * @param value
-        *            its value
+        *            its value (<b>MUST NOT</b> be NULL)
         * @param group
-        *            its group if any
+        *            its group if any (or NULL if none)
         */
        public Data(List<TypeInfo> types, String name, String value, String group) {
                super(types);
 
-               this.name = name;
-               this.value = value;
+               this.name = name.toUpperCase();
+               this.value = value.toString(); // crash NOW if null
                this.group = group;
 
                b64 = -1;
@@ -146,6 +146,21 @@ public class Data extends BaseClass<TypeInfo> {
                return b64 >= 0;
        }
 
+       /**
+        * Check if this {@link Data} has the "preferred" flag.
+        * 
+        * @return TRUE if it has
+        */
+       public boolean isPreferred() {
+               for (TypeInfo type : this) {
+                       if (type.getName().equals("TYPE") && type.getValue().equals("pref")) {
+                               return true;
+                       }
+               }
+
+               return false;
+       }
+
        @Override
        public String getId() {
                return "" + name;
@@ -153,6 +168,6 @@ public class Data extends BaseClass<TypeInfo> {
 
        @Override
        public String getState() {
-               return "" + name + value + group;
+               return ("" + name + value + group).replace(' ', '_');
        }
 }