diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/VCard.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/VCard.java index fd18638e4..1dffba285 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/VCard.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/packet/VCard.java @@ -107,6 +107,8 @@ public class VCard extends IQ { private String firstName; private String lastName; private String middleName; + private String prefix; + private String suffix; private String emailHome; private String emailWork; @@ -197,6 +199,24 @@ public class VCard extends IQ { updateFN(); } + public String getPrefix() { + return prefix; + } + + public void setPrefix(String prefix) { + this.prefix = prefix; + updateFN(); + } + + public String getSuffix() { + return suffix; + } + + public void setSuffix(String suffix) { + this.suffix = suffix; + updateFN(); + } + public String getNickName() { return otherSimpleFields.get("NICKNAME"); } @@ -568,6 +588,8 @@ public class VCard extends IQ { xml.optElement("FAMILY", lastName); xml.optElement("GIVEN", firstName); xml.optElement("MIDDLE", middleName); + xml.optElement("PREFIX", prefix); + xml.optElement("SUFFIX", suffix); xml.closeElement("N"); } if (hasOrganizationFields()) { @@ -692,7 +714,8 @@ public class VCard extends IQ { } private boolean hasNameField() { - return firstName != null || lastName != null || middleName != null; + return firstName != null || lastName != null || middleName != null + || prefix != null || suffix != null; } private boolean hasOrganizationFields() { diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java index 753805dd2..f4612fd19 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/vcardtemp/provider/VCardProvider.java @@ -284,6 +284,12 @@ public class VCardProvider extends IQProvider { case "MIDDLE": vCard.setMiddleName(parser.nextText()); break; + case "PREFIX": + vCard.setPrefix(parser.nextText()); + break; + case "SUFFIX": + vCard.setSuffix(parser.nextText()); + break; default: break; } diff --git a/smack-extensions/src/test/java/org/jivesoftware/smackx/vcardtemp/VCardTest.java b/smack-extensions/src/test/java/org/jivesoftware/smackx/vcardtemp/VCardTest.java index 419762896..1f29fd6cb 100644 --- a/smack-extensions/src/test/java/org/jivesoftware/smackx/vcardtemp/VCardTest.java +++ b/smack-extensions/src/test/java/org/jivesoftware/smackx/vcardtemp/VCardTest.java @@ -48,6 +48,8 @@ public class VCardTest extends InitExtensions { + "Name" + "User" + "PJ" + + "Mr." + + "III" + "" + "User dude" + "http://www.igniterealtime.org" @@ -99,6 +101,8 @@ public class VCardTest extends InitExtensions { assertEquals("Name", vCard.getLastName()); assertEquals("PJ", vCard.getMiddleName()); assertEquals("User dude", vCard.getNickName()); + assertEquals("Mr.", vCard.getPrefix()); + assertEquals("III", vCard.getSuffix()); assertEquals("Programmer & tester", vCard.getField("TITLE")); assertEquals("Bug fixer", vCard.getField("ROLE"));