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.
}
/**
- * 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;
}
/**
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.
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) {
*/
@Override
public String toString() {
- return toString(Format.VCard21, -1);
+ return "[Contact: " + getPreferredDataValue("FN") + "]";
}
/**