public static String surname(final YContributor contributor) { String result = name(contributor, NameTypes.NM_SURNAME); if (StringUtils.isEmpty(result)) { result = legacyPersonAttribute(contributor, AT_CONTRIBUTOR_PERSON_LASTNAME); } if (StringUtils.isEmpty(result)) { result = text(contributor.getDefaultName()); log.warn("surname is empty - falling back to contributor's default name"); } return result; }
String role = contr.getRole(); String name = contr.getDefaultName().getText().toLowerCase(); if (expContrMap.containsKey(role)) { expContrMap.get(role).add(name); for (YContributor contr : actual.getContributors()) { String role = contr.getRole(); String name = contr.getDefaultName().getText().toLowerCase(); if (actContrMap.containsKey(role)) { actContrMap.get(role).add(name);
public String generateContributorMd5(final YContributor cont) { final String firstname = getContributorFirstName(cont); final String surname = getContributorLastName(cont); final String title = cont.getDefaultName() != null ? cont.getDefaultName().getText() : ""; return generateContributorMd5(title, firstname, surname, detectContributorType(cont)); }
protected void fillContributors(YElement yElement, List<YExportable> referedElements, Map<String, List<StringWithAttributes>> ret) { // creator element for (YContributor yContributor : yElement.getContributors()) { String dcRoleElementName = null; String role=yContributor.getRole(); if (role.equals(ContributorRoles.CR_AUTHOR) || role.equals(ContributorRoles.CR_EDITOR)) { dcRoleElementName = E_CREATOR; } else if (role.equals(ContributorRoles.CR_PUBLISHER)) { dcRoleElementName = E_PUBLISHER; } else if (role.equals(ContributorRoles.CR_OTHER)) { dcRoleElementName = E_CONTRIBUTOR; } if (dcRoleElementName != null) { if (!ret.containsKey(dcRoleElementName)) { ret.put(dcRoleElementName, new ArrayList<StringWithAttributes>()); } if (StringUtils.isNotBlank(yContributor.getIdentity())) { ret.get(dcRoleElementName).add(new StringWithAttributes(yContributor.getIdentity())); } else { ret.get(dcRoleElementName).add(new StringWithAttributes(yContributor.getDefaultName().getText())); } } } }
@Override protected boolean enhanceMetadata(MatchResult result, YElement metadata) { String journal = result.group(1); List<String> authors = new ArrayList<String>(); for (YContributor contributor : metadata.getContributors()) { if (contributor.getRole().equals(YConstants.CR_AUTHOR)) { authors.add(contributor.getDefaultName().getText()); } } if (authors.size() == 1) { journal = removeFirst(journal, authors.get(0)); } if (authors.size() == 2) { journal = removeFirst(journal, authors.get(0)); journal = removeFirst(journal, "and"); journal = removeFirst(journal, authors.get(1)); } if (authors.size() > 2) { journal = journal.replaceFirst("^.*et al\\.", "").trim(); } Enhancers.addJournal(metadata, journal); Enhancers.addVolume(metadata, result.group(2)); Enhancers.addIssue(metadata, result.group(3)); return true; }
public ContributorInfo prepareContributorInfo(final YContributor cont, final boolean flatten) { final YName forenames = cont.getOneName(YConstants.NM_FORENAMES); final YName surname = cont.getOneName(YConstants.NM_SURNAME); final String firstName = forenames == null ? null : toText(forenames.getRichText(), flatten); final String lastName = surname == null ? null : toText(surname.getRichText(), flatten); final String text = cont.getDefaultName() == null ? null : toText(cont.getDefaultName().getRichText(), flatten); final String role = cont.getRole(); final CONTRIBUTOR_TYPE type = detectContributorType(cont); return prepareContributorInfo(firstName, lastName, text, role, type); }
private List<DocAuthor> authorsFromYElement(final YElement element) { final List<DocAuthor> authors = new ArrayList<DocAuthor>(); for (final YContributor contributor : element.getContributors()) { final YName fullName = contributor.getDefaultName(); if (fullName == null) { continue; } // TODO: check if parsed correctly DocAuthor author = authorParser.parse(fullName.getText()); if (author == null) { author = new DocAuthor(null, fullName.getText()); } final List<DocAffiliation> affs = new ArrayList<DocAffiliation>(); for (final String affiliationRef : contributor.getAffiliationRefs()) { final YAffiliation affiliation = element.getAffiliation(affiliationRef); if (affiliation == null) { continue; } final DocAffiliation aff = affiliationParser.parse(affiliation.getSimpleText()); if (aff != null) { affs.add(aff); } } if (!affs.isEmpty()) { author.setAffiliations(affs); } authors.add(author); } return authors; }