a9018ca066d1cc590fcb92b76ce884919150a1ea
1 package be
.nikiroo
.jvcard
;
3 import java
.io
.BufferedReader
;
4 import java
.io
.BufferedWriter
;
6 import java
.io
.FileReader
;
7 import java
.io
.FileWriter
;
8 import java
.io
.IOException
;
9 import java
.util
.Arrays
;
10 import java
.util
.LinkedList
;
11 import java
.util
.List
;
13 import be
.nikiroo
.jvcard
.parsers
.Format
;
14 import be
.nikiroo
.jvcard
.parsers
.Parser
;
17 * A card is a contact information card. It contains data about one or more
24 private List
<Contact
> contacts
;
26 private boolean dirty
;
28 public Card(File file
, Format format
) throws IOException
{
31 BufferedReader buffer
= new BufferedReader(new FileReader(file
));
32 List
<String
> lines
= new LinkedList
<String
>();
33 for (String line
= buffer
.readLine(); line
!= null; line
= buffer
41 public List
<Contact
> getContacts() {
45 public boolean saveAs(File file
, Format format
) throws IOException
{
49 BufferedWriter writer
= new BufferedWriter(new FileWriter(file
));
50 writer
.append(toString(format
));
53 if (file
.equals(this.file
)) {
60 public boolean save(Format format
, boolean bKeys
) throws IOException
{
61 return saveAs(file
, format
);
64 public String
toString(Format format
) {
65 return Parser
.toString(this, format
);
68 public String
toString() {
69 return toString(Format
.VCard21
);
72 protected void load(String serializedContent
, Format format
) {
73 // note: fixed size array
74 List
<String
> lines
= Arrays
.asList(serializedContent
.split("\n"));
78 protected void load(List
<String
> lines
, Format format
) {
79 this.contacts
= Parser
.parse(lines
, format
);
82 for (Contact contact
: contacts
) {
83 contact
.setParent(this);
87 public boolean isDirty() {
92 * Notify that this element has unsaved changes.