private boolean notInLevelToSkip(final YAncestor ancestor) { final String ancestorsLevel = ancestor.getLevel(); for (final String level : levelsToSkip) { if (level.equals(ancestorsLevel)) { return false; } } return true; }
public static Map<String, IdentifiersData> collectIdentifiers(YElement element) { Map<String, IdentifiersData> data = new HashMap<>(); for (YStructure structure : element.getStructures()) { for (YAncestor ancestor : structure.getAncestors()) { if(SUPPORTRED_LEVELS.contains(ancestor.getLevel())){ data.putAll(collectObjectIdentifiers(ancestor, ancestor.getLevel())); } } } data.putAll(collectObjectIdentifiers(element, StringUtils.EMPTY)); return data; }
private String findDoubledLevel(YElement element) { YStructure structure = element.getStructure(HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL); if (structure == null) { return null; } List<YAncestor> ancestors = structure.getAncestors(); Set<String> existingLevels = new HashSet<String>(); for (YAncestor yAncestor : ancestors) { String level = yAncestor.getLevel(); if (level != null) { if (existingLevels.contains(level)) { return level; } else { existingLevels.add(level); } } } return null; }
private Map<String, YDate> extractDatesFromHierarchy(final List<YStructure> structures) { Map<String, YDate> dates = new HashMap<>(); for (final YStructure structure : structures) { for (final YAncestor ancestor : structure.getAncestors()) { dates.putAll(processYDates(ancestor.getDates())); if (HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_YEAR.equals(ancestor.getLevel())) { dates.put("hierarchy", getDateFromYear(ancestor)); } } } return dates; }
private ListMultimap<String, YAncestor> getMappedAncestors(Collection<YAncestor> ancestors) { ListMultimap<String, YAncestor> mappedAncestors = ListMultimapBuilder.hashKeys().arrayListValues().build(); for (YAncestor ancestor : ancestors) { mappedAncestors.put(ancestor.getLevel(), ancestor); } return mappedAncestors; }
private YAncestor setNonIssueAncestorsAndGetExisitingIssue(String issueId, YStructure journal) { YAncestor existingIssue = null; List<YAncestor> nonIssueAncestors = new ArrayList<>(); for(YAncestor ancestor : journal.getAncestors()) { boolean isNotIssue = !ancestor.getLevel().equals(YConstants.EXT_LEVEL_JOURNAL_ISSUE); boolean isCurrentIssue = ancestor.getIdentity().equals(issueId); if(isNotIssue) { nonIssueAncestors.add(ancestor); } else if(isCurrentIssue) { existingIssue = ancestor; } else { // ignore/remove non current issues } } journal.setAncestors(nonIssueAncestors); return existingIssue; }
private static void replaceJournalNameField(final YElement yElement, final String[] values) { if (values != null && values.length > 0) { } final YStructure structure = yElement.getStructure(YConstants.EXT_HIERARCHY_JOURNAL); if (structure != null) { for (final YAncestor ancestor : structure.getAncestors()) { final String level = ancestor.getLevel(); if (YConstants.EXT_LEVEL_JOURNAL_JOURNAL.equals(level)) { final String firstJournalName = values[0]; ancestor.addName(new YName(null, firstJournalName, Y_TYPE_HIGHLIGHTED)); } } } }
private List<StructureData> prepareStructure(YElement yElement, String hierarchy, String[] levels, String... topLevelIds) { List<String> topLevels = Arrays.asList(topLevelIds); String topId = null; String topLevelId = null; List<StructureData> ancestors = new ArrayList<StructureData>(); final YStructure structure = yElement.getStructure(hierarchy); if (structure != null) { ListMultimap<String, YAncestor> mappedAncestors = getMappedAncestors(structure.getAncestors()); for (String level : levels) { final YAncestor ancestor = getAncestor(mappedAncestors, level); if (ancestor != null && ArrayUtils.contains(StructureData.LEVELS_ALLOWED, ancestor.getLevel())) { if (topLevels.contains(ancestor.getLevel())) { topId = ancestor.getIdentity(); topLevelId = ancestor.getLevel(); ancestors.add(new StructureData(ancestor.getIdentity(), YModelUtils.getDefaultName(ancestor), ancestor.getLevel(), topId, topLevelId)); } else { ancestors.add(new StructureData(ancestor.getIdentity(), IndexUtils.encodeNameValue(YModelUtils.getDefaultName(ancestor)), ancestor.getLevel(), topId, topLevelId)); } } } if (StringUtils.isNotBlank(structure.getCurrent().getPosition()) && ArrayUtils.contains(StructureData.ALLOWED_LEVELS_OF_CURRENT_POSITION, structure.getCurrent().getLevel())) { ancestors.add(new StructureData(null, structure.getCurrent().getPosition())); } } return ancestors; }
if (HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_VOLUME.equals(yAncestor.getLevel())) { if (firstVolume == null) { firstVolume = yAncestor;
private Map<String, AncestorData> extractHierarchy(YElement yElement) { Map<String, AncestorData> result = new HashMap<String, AncestorData>(); for (final String hierarhyId : YModelUtils.ALLOWED_HIERARCHY_ID) { YStructure yStructure = yElement.getStructure(hierarhyId); if (yStructure != null) { for (YAncestor ancestor : yStructure.getAncestors()) { if (ResourceDataConstants.MAP_ANCESTOR_TYPE_TO_LEVEL.containsValue(ancestor.getLevel())) { final YName ancestorName = ancestor.getOneName(); if (ancestorName != null) { result.put(ResourceDataConstants.MAP_ANCESTOR_TYPE_TO_LEVEL.inverse().get(ancestor.getLevel()), new AncestorData().setId(ancestor.getIdentity()).setName(ancestorName.getText())); } } } YCurrent current = yStructure.getCurrent(); if(current!=null && StringUtils.isNotBlank(current.getPosition())){ result.put(ResourceDataConstants.ANCESTOR_LEVEL_NAME_PAGES, new AncestorData().setName(current.getPosition())); } } } return result; }
if (levelToFix.equals(yAncestor.getLevel())) { YElement ancElement = fetchElement(repository, yAncestor.getIdentity()); YStructure structure = ancElement.getStructure(HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL);