VCard format: correctly co/decode escaped values
[jvcard.git] / src / be / nikiroo / jvcard / TypeInfo.java
1 package be.nikiroo.jvcard;
2
3 /**
4 * This class describes a type, that is, a key-value pair.
5 *
6 * @author niki
7 *
8 */
9 public class TypeInfo extends BaseClass<TypeInfo> {
10 private String name;
11 private String value;
12
13 /**
14 * Create a new {@link TypeInfo}.
15 *
16 * @param name
17 * the name of this {@link TypeInfo} (<b>MUST NOT</b> be NULL)
18 * @param value
19 * its value (<b>MUST NOT</b> be NULL)
20 */
21 public TypeInfo(String name, String value) {
22 super(null);
23
24 this.name = name.toUpperCase();
25 this.value = escape(value.toString()); // crash NOW if null
26 }
27
28 /**
29 * Return the name.
30 *
31 * @return the name
32 */
33 public String getName() {
34 return name;
35 }
36
37 /**
38 * Return the value.
39 *
40 * @return the value
41 */
42 public String getValue() {
43 return unescape(value);
44 }
45
46 /**
47 * Return the RAW value
48 *
49 * @return the RAW value
50 */
51 public String getRawValue() {
52 return value;
53 }
54
55 @Override
56 public String getId() {
57 return "" + name;
58 }
59
60 @Override
61 public String getState() {
62 return ("" + name + value).replace(' ', '_');
63 }
64 }