@SuppressWarnings("unchecked") private void addEmail(Email email, Map<String, Object> map) { List<Map<String, String>> collection = (List<Map<String, String>>) map.computeIfAbsent("emailAddresses", k -> new ArrayList<>()); Map<String, String> emailMap = new LinkedHashMap<>(); emailMap.put("address", email.getValue()); collection.add(emailMap); } }
private void copyPersonData(VCard card, Map<String, Object> contact, TransformerContext context) { // Addresses are lossy: there is no distinction in VCard between business and home addresses if (!card.getAddresses().isEmpty()) { safeSet( "homeAddress", context.transform(LinkedHashMap.class, card.getAddresses().get(0)), contact); } card.getEmails().stream().filter(v -> v.getValue() != null).forEach(v -> addEmail(v, contact)); card.getTelephoneNumbers() .stream() .filter(t -> t.getText() != null) .forEach( telephone -> { for (TelephoneType telephoneType : telephone.getTypes()) { if (TelephoneType.CELL.equals(telephoneType)) { // this could overwrite some numbers since MS contacts only have one mobile contact.put("mobilePhone", telephone.getText()); } else if (TelephoneType.WORK.equals(telephoneType)) { addPhone("businessPhones", telephone, contact); } else { addPhone("homePhones", telephone, contact); } } }); if (card.getBirthday() != null) { safeSet("birthday", card.getBirthday().getText(), contact); } }
private static EmailAddress convertToGoogleEmail(Email vCardEmail) { EmailAddress emailAddress = new EmailAddress(); emailAddress.setValue(vCardEmail.getValue()); if (vCardEmail.getPref() != null && vCardEmail.getPref() == VCARD_PRIMARY_PREF) { emailAddress.setMetadata(PRIMARY_FIELD_METADATA); } else { emailAddress.setMetadata(SECONDARY_FIELD_METADATA); } // TODO(olsona): address display name, formatted type, etc return emailAddress; }
String mailTo = "mailto:" + email.getValue(); if (email.getTypes().isEmpty()) { r.addProperty(VCARD4.hasEmail, mailTo);
@Test public void testFromRDF() { VCard vcard = SolidContactsExport.parsePerson(getPersonResource(TestData.RDF_TEST_DATA1)); assertWithMessage("Formatted Name is correct") .that(vcard.getFormattedName().getValue()) .isEqualTo("Cool Kid 1"); assertWithMessage("Note is correct") .that(vcard.getNotes().get(0).getValue()) .isEqualTo("This is a note for Cool Kid 1"); assertWithMessage("One email found") .that(vcard.getEmails()) .hasSize(1); assertWithMessage("email is correct") .that(vcard.getEmails().get(0).getValue()) .isEqualTo("a@b.com"); }
emailString += arrayToString(email.getTypes().toArray()) + ": " + email.getValue() + "\n";
String emailAddr = email.getValue(); if (UtilValidate.isEmail(emailAddr)) { serviceCtx.put("emailAddress", emailAddr);