X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2FContact.java;h=6d362f9c9aed7675fe7fb292095d021848829b52;hb=d5260eeb873fcf2ef9855dedcd9e2a3a3a990582;hp=4b46eab8afa3dcc6aa840d8c89952d0c4ef8b3b5;hpb=30a4aa17f2141ad80a23447ee2e6303f6c9ef995;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/Contact.java b/src/be/nikiroo/jvcard/Contact.java index 4b46eab..6d362f9 100644 --- a/src/be/nikiroo/jvcard/Contact.java +++ b/src/be/nikiroo/jvcard/Contact.java @@ -11,7 +11,7 @@ import java.util.UUID; import be.nikiroo.jvcard.parsers.Format; import be.nikiroo.jvcard.parsers.Parser; -import be.nikiroo.jvcard.resources.StringUtils; +import be.nikiroo.utils.StringUtils; /** * A contact is the information that represent a contact person or organisation. @@ -36,23 +36,26 @@ public class Contact extends BaseClass { } /** - * Return the preferred Data field with the given name, or NULL if none. + * Return the preferred Data field with the given name, the first one if + * none is preferred, or NULL if none at all. * * @param name * the name to look for - * @return the Data field, or NULL + * + * @return the {@link Data} field, or NULL */ public Data getPreferredData(String name) { - Data first = null; + Data pref = null; + int ipref = Integer.MAX_VALUE; for (Data data : getData(name)) { - if (first == null) - first = data; + if (pref == null) + pref = data; - if (data.isPreferred()) - return data; + if (data.getPreferred() < ipref) + pref = data; } - return first; + return pref; } /** @@ -88,27 +91,6 @@ public class Contact extends BaseClass { return found; } - /** - * Return a {@link String} representation of this contact. - * - * @param format - * the {@link Format} to use - * @param startingBKey - * the starting BKey or -1 for no BKeys - * @return the {@link String} representation - */ - public String toString(Format format, int startingBKey) { - updateBKeys(false); - - StringBuilder builder = new StringBuilder(); - for (String line : Parser.toStrings(this, format, startingBKey)) { - builder.append(line); - builder.append("\r\n"); - } - - return builder.toString(); - } - /** * Return a {@link String} representation of this contact formated * accordingly to the given format. @@ -149,7 +131,7 @@ public class Contact extends BaseClass { * @return the {@link String} representation */ public String toString(String format, String separator) { - return toString(format, separator, null, -1, true, false); + return toString(format, separator, null, -1, true); } /** @@ -191,14 +173,13 @@ public class Contact extends BaseClass { * the {@link String} to use for left and right padding * @param width * a fixed width or -1 for "as long as needed" - * * @param unicode - * allow Uniode or only ASCII characters + * allow Unicode or only ASCII characters * * @return the {@link String} representation */ public String toString(String format, String separator, String padding, - int width, boolean unicode, boolean removeAccents) { + int width, boolean unicode) { StringBuilder builder = new StringBuilder(); for (String str : toStringArray(format, separator, padding, width, @@ -323,7 +304,7 @@ public class Contact extends BaseClass { * a fixed width or -1 for "as long as needed" * @param unicode * allow Uniode or only ASCII characters - * + * * @return the {@link String} representation */ public String[] toStringArray(String format, int width, boolean unicode) { @@ -400,7 +381,11 @@ public class Contact extends BaseClass { value = ff.get(fieldNum); } } else { - value = getPreferredDataValue(field); + // we don't need the *data* in binary mode... + if (binary) + value = getData(field).size() > 0 ? "x" : null; + else + value = getPreferredDataValue(field); } if (value == null) { @@ -527,7 +512,7 @@ public class Contact extends BaseClass { */ @Override public String toString() { - return toString(Format.VCard21, -1); + return "[Contact: " + getPreferredDataValue("FN") + "]"; } /**