private void copyNames(Map<String, Object> map, VCard card) { String givenName = (String) map.get("givenName"); String surname = (String) map.get("surname"); StructuredName structuredName = new StructuredName(); structuredName.setFamily(surname); structuredName.setGiven(givenName); getString("middleName", map).ifPresent(v -> structuredName.getAdditionalNames().add(v)); getString("title", map).ifPresent(v -> structuredName.getPrefixes().add(v)); card.setStructuredName(structuredName); getString("displayName", map).ifPresent(card::setFormattedName); getString("nickName", map).ifPresent(card::setNickname); }
private void copyNames(VCard card, Map<String, Object> contact) { StructuredName structuredName = card.getStructuredName(); if (structuredName != null) { safeSet("givenName", structuredName.getGiven(), contact); safeSet("surname", structuredName.getFamily(), contact); // MS contacts only allows one middle name - take the first one if (!structuredName.getAdditionalNames().isEmpty()) { safeSet("middleName", structuredName.getAdditionalNames().get(0), contact); } // MS contacts only allows one prefix - take the first one if (!structuredName.getPrefixes().isEmpty()) { safeSet("title", structuredName.getPrefixes().get(0), contact); } } safeSet("displayName", card.getFormattedName(), contact); safeSet("nickName", card.getNickname(), contact); }
private static StructuredName convertToVCardNameSingle(Name personName) { StructuredName structuredName = new StructuredName(); structuredName.setFamily(personName.getFamilyName()); structuredName.setGiven(personName.getGivenName()); structuredName.setParameter( SOURCE_PARAM_NAME_TYPE, personName.getMetadata().getSource().getType()); // TODO(olsona): address formatting, structure, phonetics, suffixes, prefixes return structuredName; }
private static String createCards() throws IOException { StringWriter stringWriter = new StringWriter(); JCardWriter writer = new JCardWriter(stringWriter); VCard card1 = new VCard(); StructuredName structuredName1 = new StructuredName(); structuredName1.setGiven("Test Given Data1"); structuredName1.setFamily("Test Surname Data1"); card1.setStructuredName(structuredName1); VCard card2 = new VCard(); StructuredName structuredName2 = new StructuredName(); structuredName2.setGiven("Test Given Data2"); structuredName2.setFamily("Test Surname Data2"); card2.setStructuredName(structuredName2); writer.write(card1); writer.write(card2); writer.close(); return stringWriter.toString(); } }
private static Name convertToGoogleName(StructuredName vCardName) { Name name = new Name(); name.setFamilyName(vCardName.getFamily()); name.setGivenName(vCardName.getGiven()); FieldMetadata fieldMetadata = new FieldMetadata(); boolean isPrimary = (vCardName.getAltId() == null); fieldMetadata.setPrimary(isPrimary); String vCardNameSource = vCardName.getParameter(SOURCE_PARAM_NAME_TYPE); if (CONTACT_SOURCE_TYPE.equals(vCardNameSource)) { Source source = new Source().setType(vCardNameSource); fieldMetadata.setSource(source); } name.setMetadata(fieldMetadata); // TODO(olsona): address formatting, structure, phonetics, suffixes, prefixes return name; }
@Test public void importFirstResources() throws IOException { // Set up: small number of VCards to be imported int numberOfVCards = 5; List<VCard> vCardList = new LinkedList<>(); for (int i = 0; i < numberOfVCards; i++) { StructuredName structuredName = new StructuredName(); structuredName.setFamily("Family" + i); structuredName.setParameter(SOURCE_PARAM_NAME_TYPE, CONTACT_SOURCE_TYPE); VCard vCard = new VCard(); vCard.setStructuredName(structuredName); vCardList.add(vCard); } String vCardString = GoogleContactsExporter.makeVCardString(vCardList); ContactsModelWrapper wrapper = new ContactsModelWrapper(vCardString); // Run test contactsService.importItem(UUID.randomUUID(), null, wrapper); // Check that the right methods were called verify(people, times(numberOfVCards)).createContact(any(Person.class)); verify(createContact, times(numberOfVCards)).execute(); } }
@Override public StructuredName copy() { return new StructuredName(this); }
SN = new StructuredName(); SN.setFamily(lastname); SN.setGiven(firstname);
private static StructuredName makeStructuredName( String givenName, String familyName, @Nullable String sourceType) { StructuredName structuredName = new StructuredName(); structuredName.setGiven(givenName); structuredName.setFamily(familyName); if (sourceType != null) { structuredName.setParameter(SOURCE_PARAM_NAME_TYPE, sourceType); } return structuredName; }
if (UtilValidate.isEmpty(structuredName)) continue; if (!isGroup) { serviceCtx.put("firstName", structuredName.getGiven()); serviceCtx.put("lastName", structuredName.getFamily()); return ServiceUtil.returnError(UtilProperties.getMessage(resourceError, "MarketingEmailFormatError", UtilMisc.toMap("firstName", structuredName.getGiven(), "lastName", structuredName.getFamily(), "emailFOrmatErrMsg", emailFormatErrMsg), locale));
Statement nameStatement = nameIterator.nextStatement(); Resource structuredNameResource = nameStatement.getResource(); StructuredName structuredName = new StructuredName(); if (structuredNameResource.hasProperty(VCARD4.family_name)) { structuredName.setFamily(structuredNameResource.getProperty(VCARD4.family_name).getString()); structuredName.setGiven(structuredNameResource.getProperty(VCARD4.given_name).getString()); prefix -> structuredName.getPrefixes().add(prefix.getString()) ); structuredNameResource.listProperties(VCARD4.hasHonorificSuffix).forEachRemaining( suffix -> structuredName.getSuffixes().add(suffix.getString()) ); structuredNameResource.listProperties(VCARD4.hasAdditionalName).forEachRemaining( additional -> structuredName.getAdditionalNames().add(additional.getString()) ); vcard.getStructuredNames().add(structuredName);
if (!Strings.isNullOrEmpty(structuredName.getFamily())) { strucName.addProperty(VCARD4.family_name, structuredName.getFamily()); if (!Strings.isNullOrEmpty(structuredName.getGiven())) { strucName.addProperty(VCARD4.given_name, structuredName.getGiven()); structuredName.getPrefixes() .forEach(prefix -> strucName.addProperty(VCARD4.hasHonorificPrefix, prefix)); structuredName.getSuffixes() .forEach(suffix -> strucName.addProperty(VCARD4.hasHonorificSuffix, suffix)); structuredName.getAdditionalNames() .forEach(additional -> strucName.addProperty(VCARD4.hasAdditionalName, additional));
try { ezvcard.VCard vcard = new ezvcard.VCard(); StructuredName structuredName = new StructuredName(); GenericValue person = EntityQuery.use(delegator).from("Person").where("partyId", partyId).queryOne(); if (person != null) { if (UtilValidate.isNotEmpty(person.getString("firstName"))) structuredName.setGiven(person.getString("firstName")); if (UtilValidate.isNotEmpty(person.getString("lastName"))) structuredName.setFamily(person.getString("lastName")); vcard.setStructuredName(structuredName);
@Override protected StructuredName _parseHtml(HCardElement element, ParseContext context) { StructuredName property = new StructuredName(); property.setFamily(s(element.firstValue("family-name"))); property.setGiven(s(element.firstValue("given-name"))); property.getAdditionalNames().addAll(element.allValues("additional-name")); property.getPrefixes().addAll(element.allValues("honorific-prefix")); property.getSuffixes().addAll(element.allValues("honorific-suffix")); return property; }
@Override protected JCardValue _writeJson(StructuredName property) { return JCardValue.structured(property.getFamily(), property.getGiven(), property.getAdditionalNames(), property.getPrefixes(), property.getSuffixes()); }
@Override protected StructuredName _parseJson(JCardValue value, VCardDataType dataType, VCardParameters parameters, ParseContext context) { StructuredName property = new StructuredName(); StructuredValueIterator it = new StructuredValueIterator(value.asStructured()); property.setFamily(it.nextValue()); property.setGiven(it.nextValue()); property.getAdditionalNames().addAll(it.nextComponent()); property.getPrefixes().addAll(it.nextComponent()); property.getSuffixes().addAll(it.nextComponent()); return property; } }
@Override protected void _writeXml(StructuredName property, XCardElement parent) { parent.append("surname", property.getFamily()); //the XML element still needs to be printed if value == null parent.append("given", property.getGiven()); parent.append("additional", property.getAdditionalNames()); parent.append("prefix", property.getPrefixes()); parent.append("suffix", property.getSuffixes()); }
@Override protected StructuredName _parseXml(XCardElement element, VCardParameters parameters, ParseContext context) { StructuredName property = new StructuredName(); property.setFamily(s(element.first("surname"))); property.setGiven(s(element.first("given"))); property.getAdditionalNames().addAll(element.all("additional")); property.getPrefixes().addAll(element.all("prefix")); property.getSuffixes().addAll(element.all("suffix")); return property; }
builder.append(property.getFamily()); builder.append(property.getGiven()); builder.append(join(property.getAdditionalNames(), ",")); builder.append(join(property.getPrefixes(), ",")); builder.append(join(property.getSuffixes(), ",")); return builder.build(false, context.isIncludeTrailingSemicolons()); } else { StructuredValueBuilder builder = new StructuredValueBuilder(); builder.append(property.getFamily()); builder.append(property.getGiven()); builder.append(property.getAdditionalNames()); builder.append(property.getPrefixes()); builder.append(property.getSuffixes()); return builder.build(context.isIncludeTrailingSemicolons());