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}.
* if format is NULL
*/
public Card(File file, Format format) throws IOException {
- this(Parser.parse(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;
* @throws InvalidParameterException
* if format is NULL
*/
- public Card(List<Contact> contacts) throws IOException {
+ public Card(List<Contact> contacts) {
super(contacts);
lastModified = -1;
return false;
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
- writer.append(toString(format));
+ Parser.write(writer, format, this);
writer.close();
if (this.file != null
&& file.getCanonicalPath().equals(this.file.getCanonicalPath())) {
+ lastModified = file.lastModified();
setPristine();
}
if (file == null)
return false;
- this.replaceListContent(Parser.parse(file, format));
+ this.replaceListContent(Parser.parseContact(file, format));
+ lastModified = file.lastModified();
setPristine();
- 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) {
- return Parser.toString(this, format);
+ return true;
}
/**
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).
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);
+ return "[Card: " + name + "]";
}
@Override
@Override
public String getState() {
- return "" + name + format;
+ return ("" + name + format).replace(' ', '_');
}
}