X-Git-Url: http://git.nikiroo.be/?p=jvcard.git;a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2FContact.java;h=c5579fe8c5e1cf4a71eeec149d83c7d23be79ff4;hp=328993947311772e5b62af6920ea178adef6b02c;hb=176a83279a5aafb7e44cc7c34bf78f0bc35225fe;hpb=adf9c44949504512002cff293641225b31ec568a diff --git a/src/be/nikiroo/jvcard/Contact.java b/src/be/nikiroo/jvcard/Contact.java index 3289939..c5579fe 100644 --- a/src/be/nikiroo/jvcard/Contact.java +++ b/src/be/nikiroo/jvcard/Contact.java @@ -34,15 +34,17 @@ public class Contact { boolean fn = false; boolean n = false; - for (Data data : content) { - if (data.getName().equals("N")) { - n = true; - } else if (data.getName().equals("FN")) { - fn = true; - } + if (content != null) { + for (Data data : content) { + if (data.getName().equals("N")) { + n = true; + } else if (data.getName().equals("FN")) { + fn = true; + } - if (!data.getName().equals("VERSION")) { - datas.add(data); + if (!data.getName().equals("VERSION")) { + datas.add(data); + } } } @@ -81,6 +83,32 @@ public class Contact { return datas.get(index); } + /** + * Add a new {@link Data} in this {@link Contact}. + * + * @param data + * the new data + */ + public void add(Data data) { + data.setParent(this); + data.setDirty(); + datas.add(data); + } + + /** + * Remove the given {@link Data} from its this {@link Contact} if it is in. + * + * @return TRUE in case of success + */ + public boolean remove(Data data) { + if (datas.remove(data)) { + setDirty(); + return true; + } + + return false; + } + /** * Return the preferred Data field with the given name, or NULL if none. * @@ -460,14 +488,7 @@ public class Contact { */ public boolean delete() { if (parent != null) { - List list = parent.getContactsList(); - for (int i = 0; i < list.size(); i++) { - if (list.get(i) == this) { - list.remove(i); - parent.setDirty(); - return true; - } - } + return parent.remove(this); } return false;