X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2FCard.java;h=de5ab67a604207f0d294f3d9a7652a460c4754a3;hb=1c03abafc3987d93fa682e7b8758e51bed8a4faf;hp=e714b5633a9b5047d4a08df36463bbda05bab2f4;hpb=b9f192ed5290f3263f60dc5a2dc9fd754eead958;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/Card.java b/src/be/nikiroo/jvcard/Card.java index e714b56..de5ab67 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; @@ -44,7 +40,7 @@ public class Card extends BaseClass { * if format is NULL */ public Card(File file, Format format) throws IOException { - this(load(file, format)); + this(Parser.parse(file, format)); if (file != null) { if (file.exists()) { @@ -58,8 +54,7 @@ public class Card extends BaseClass { this.file = file; switch (format) { case VCard21: - this.name = file.getName().replaceAll( - ".[vV][cC][fF]$", ""); + this.name = file.getName().replaceAll(".[vV][cC][fF]$", ""); break; case Abook: default: @@ -90,7 +85,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 @@ -100,15 +95,16 @@ 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())) { setPristine(); } @@ -139,7 +135,7 @@ public class Card extends BaseClass { if (file == null) return false; - this.replaceListContent(load(file, format)); + this.replaceListContent(Parser.parse(file, format)); setPristine(); return true; } @@ -177,11 +173,11 @@ public class Card extends BaseClass { } /** - * Return the input which was used to open this {@link Card}. + * Return the {@link File} which was used to open this {@link Card}. * * @return the input */ - public File getInput() { + public File getFile() { return file; } @@ -219,37 +215,13 @@ public class Card extends BaseClass { return toString(Format.VCard21); } - /** - * 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(); + @Override + public String getId() { + return "" + name; + } - return Parser.parse(lines, format); + @Override + public String getState() { + return "" + name + format; } }