X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2FContact.java;h=643631314d0adbbdb06356991238e2195647fd8a;hb=bcb54330afff6a443ab43ee3d38cc7f863c701b7;hp=21ed69b86f66e532adee8bc06a5bf317d00f9021;hpb=0b0b2b0ff1f5e21f7b0feb955b4b54855fb3d508;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/Contact.java b/src/be/nikiroo/jvcard/Contact.java index 21ed69b..6436313 100644 --- a/src/be/nikiroo/jvcard/Contact.java +++ b/src/be/nikiroo/jvcard/Contact.java @@ -286,7 +286,7 @@ public class Contact { for (int i = 0; i < formatFields.length; i++) { str.add(""); } - + return str.toArray(new String[] {}); } @@ -526,10 +526,41 @@ public class Contact { this.parent.setDirty(); } - public void setParent(Card parent) { + void setParent(Card parent) { this.parent = parent; for (Data data : datas) { data.setParent(this); } } + + /** + * Delete this {@link Contact} from its parent {@link Card} if any. + * + * @return TRUE in case of success + */ + 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 false; + } + + /** + * Notify this element and all its descendants that it is in pristine + * state (as opposed to dirty). + */ + void setPristine() { + dirty = false; + for (Data data: datas) { + data.setPristine(); + } + } }