Performance improvement:
[jvcard.git] / src / be / nikiroo / jvcard / Card.java
index 547535804b8f37fa80fb5dc3ca22f89afc22857e..0a405bee47d744e6545b3360579343fdc5466806 100644 (file)
@@ -97,7 +97,7 @@ public class Card extends BaseClass<Contact> {
                        return false;
 
                BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-               writer.append(toString(format));
+               Parser.write(writer, format, this);
                writer.close();
 
                if (this.file != null
@@ -140,24 +140,6 @@ public class Card extends BaseClass<Contact> {
                return true;
        }
 
-       /**
-        * Return a {@link String} representation of this {@link Card} in the given
-        * {@link Format}.
-        * 
-        * @param format
-        *            the {@link Format} to use
-        * 
-        * @return the {@link String}
-        */
-       public String toString(Format format) {
-               StringBuilder builder = new StringBuilder();
-               for (String line : Parser.toStrings(this, format)) {
-                       builder.append(line);
-                       builder.append("\r\n");
-               }
-               return builder.toString();
-       }
-
        /**
         * Return the name of this card (the name of the {@link File} which it was
         * opened from).
@@ -186,6 +168,15 @@ public class Card extends BaseClass<Contact> {
                return file;
        }
 
+       /**
+        * Break the link between this {@link Card} and he {@link File} which was
+        * used to open it if any.
+        */
+       public void unlink() {
+               file = null;
+               lastModified = -1;
+       }
+
        /**
         * Return the date of the last modification for this {@link Card} (or -1 if
         * unknown/new).
@@ -198,7 +189,7 @@ public class Card extends BaseClass<Contact> {
 
        @Override
        public String toString() {
-               return toString(Format.VCard21);
+               return "[Card: " + name + "]";
        }
 
        @Override