+ dirty = false; // initial load, so no change yet, so no need to call
+ // setPristine()
+ }
+
+ /**
+ * Return the number of {@link Contact} present in this {@link Card}.
+ *
+ * @return the number of {@link Contact}s
+ */
+ public int size() {
+ return contacts.size();
+ }
+
+ /**
+ * Return the {@link Contact} at index <i>index</i>.
+ *
+ * @param index
+ * the index of the {@link Contact} to find
+ *
+ * @return the {@link Contact}
+ *
+ * @throws IndexOutOfBoundsException
+ * if the index is < 0 or >= {@link Card#size()}
+ */
+ public Contact get(int index) {
+ return contacts.get(index);
+ }
+
+ /**
+ * Add a new {@link Contact} in this {@link Card}.
+ *
+ * @param contact
+ * the new contact
+ */
+ public void add(Contact contact) {
+ contact.setParent(this);
+ contact.setDirty();
+ contacts.add(contact);