X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2FCard.java;h=547535804b8f37fa80fb5dc3ca22f89afc22857e;hb=5ad0e17e7fea1c602cb2638a006424af9c7e33e8;hp=986f81d17c0932cba2081d7586b0ce115ad25547;hpb=e253bd50bb05519f4a16fed4fb95d5b3340128ea;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/Card.java b/src/be/nikiroo/jvcard/Card.java index 986f81d..5475358 100644 --- a/src/be/nikiroo/jvcard/Card.java +++ b/src/be/nikiroo/jvcard/Card.java @@ -1,14 +1,10 @@ package be.nikiroo.jvcard; -import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; -import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; -import java.io.InputStreamReader; import java.security.InvalidParameterException; -import java.util.LinkedList; import java.util.List; import be.nikiroo.jvcard.parsers.Format; @@ -26,7 +22,6 @@ public class Card extends BaseClass { private String name; private Format format; private long lastModified; - private boolean remote; /** * Create a new {@link Card} from the given {@link File} and {@link Format}. @@ -44,12 +39,10 @@ public class Card extends BaseClass { * if format is NULL */ public Card(File file, Format format) throws IOException { - this(load(file, format)); + this(Parser.parseContact(file, format)); - if (file != null) { - if (file.exists()) { - lastModified = file.lastModified(); - } + if (file != null && file.exists()) { + lastModified = file.lastModified(); } this.format = format; @@ -79,7 +72,7 @@ public class Card extends BaseClass { * @throws InvalidParameterException * if format is NULL */ - public Card(List contacts) throws IOException { + public Card(List contacts) { super(contacts); lastModified = -1; @@ -89,7 +82,7 @@ public class Card extends BaseClass { * Save the {@link Card} to the given {@link File} with the given * {@link Format}. * - * @param output + * @param file * the output to save to * @param format * the {@link Format} to use @@ -99,15 +92,17 @@ public class Card extends BaseClass { * @throws IOException * in case of IO errors */ - public boolean saveAs(File output, Format format) throws IOException { - if (output == null) + public boolean saveAs(File file, Format format) throws IOException { + if (file == null) return false; - BufferedWriter writer = new BufferedWriter(new FileWriter(output)); + BufferedWriter writer = new BufferedWriter(new FileWriter(file)); writer.append(toString(format)); writer.close(); - if (output.getCanonicalPath().equals(this.file.getCanonicalPath())) { + if (this.file != null + && file.getCanonicalPath().equals(this.file.getCanonicalPath())) { + lastModified = file.lastModified(); setPristine(); } @@ -138,8 +133,10 @@ public class Card extends BaseClass { if (file == null) return false; - this.replaceListContent(load(file, format)); + this.replaceListContent(Parser.parseContact(file, format)); + lastModified = file.lastModified(); setPristine(); + return true; } @@ -153,7 +150,12 @@ public class Card extends BaseClass { * @return the {@link String} */ public String toString(Format format) { - return Parser.toString(this, format); + StringBuilder builder = new StringBuilder(); + for (String line : Parser.toStrings(this, format)) { + builder.append(line); + builder.append("\r\n"); + } + return builder.toString(); } /** @@ -194,25 +196,6 @@ public class Card extends BaseClass { return lastModified; } - /** - * Check if this {@link Card} is remote. - * - * @return TRUE if this {@link Card} is remote - */ - public boolean isRemote() { - return remote; - } - - /** - * Set the remote option on this {@link Card}. - * - * @param remote - * TRUE if this {@link Card} is remote - */ - public void setRemote(boolean remote) { - this.remote = remote; - } - @Override public String toString() { return toString(Format.VCard21); @@ -225,40 +208,6 @@ public class Card extends BaseClass { @Override public String getState() { - return "" + name + format; - } - - /** - * Load the data from the given {@link File} under the given {@link Format}. - * - * @param file - * the input to load from - * @param format - * the {@link Format} to load as - * - * @return the list of elements - * - * @throws IOException - * in case of IO error - */ - private static List load(File file, Format format) - throws IOException { - List lines = null; - - if (file != null && file.exists()) { - BufferedReader buffer = new BufferedReader(new InputStreamReader( - new FileInputStream(file), "UTF-8")); - lines = new LinkedList(); - for (String line = buffer.readLine(); line != null; line = buffer - .readLine()) { - lines.add(line); - } - buffer.close(); - } - - if (lines == null) - return new LinkedList(); - - return Parser.parse(lines, format); + return ("" + name + format).replace(' ', '_'); } }