private static Name getPrimaryGoogleName(List<StructuredName> vCardNameList) { StructuredName primaryVCardName; // first look if there's a primary name (or names) // if no primary name exists, simply pick the first "alt" name List<StructuredName> primaryNames = vCardNameList.stream().filter(a -> a.getAltId() == null).collect(Collectors.toList()); if (primaryNames.size() > 0) { primaryVCardName = primaryNames.get(0); } else { primaryVCardName = vCardNameList.get(0); } return convertToGoogleName(primaryVCardName); }
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; }
structuredNames.stream().filter(n -> n.getAltId() == null).collect(Collectors.toList()); List<Pair<String, String>> actualPrimaryNamesValues = actualPrimaryNames structuredNames.stream().filter(n -> n.getAltId() != null).collect(Collectors.toList()); List<Pair<String, String>> actualAlternateNamesValues = actualAlternateNames