protected YStructure buildStructureFromParent(YElement parent, String hierarchy, String currentLevel) { YStructure structure = new YStructure(hierarchy); YCurrent current = new YCurrent(currentLevel); structure.setCurrent(current); if (parent != null) { YStructure parentStructure = parent.getStructure(hierarchy); structure.getAncestors().addAll(parentStructure.getAncestors()); YAncestor ancestor = new YAncestor(parentStructure.getCurrent().getLevel(), parent.getId()); ancestor.getNames().addAll(parent.getNames()); ancestor.getIds().addAll(parent.getIds()); structure.addAncestor(ancestor); } return structure; }
private boolean isYearInYear(YElement element) { YStructure structure = element.getStructure(HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL); if (structure != null) { if (HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_YEAR.equals(structure.getCurrent().getLevel())) { YAncestor ancestor = structure.getAncestor(HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_YEAR); return ancestor != null; } } return false; }
protected boolean isMediaLeaf(YExportable entity) { if (entity instanceof YElement) { YStructure structure = null; for (YStructure s : ((YElement) entity).getStructures()) { if (contentHierarchies.contains(s.getHierarchy())) { structure = s; } } if (structure != null && structure.getCurrent() != null) { String level = structure.getCurrent().getLevel(); return YConstants.EXT_LEVEL_BOOK_BOOK.equals(level); } } return false; }
public void addEmptyStructureToYElement(YElement yelement) { YStructure articleStructure = new YStructure(); // TODO // czy nie trzeba wiecej nic ustawiac? articleStructure.setHierarchy(YConstants.EXT_HIERARCHY_JOURNAL); yelement.addStructure(articleStructure); }
@Override public String fetchCurrentStructureLevel(YElement yElement) { for (YStructure structure : yElement.getStructures()) { if (structure.getCurrent() != null) { return structure.getCurrent().getLevel(); } } return null; }
YStructure structure = new YStructure(); structure.setHierarchy(HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL); YCurrent current = new YCurrent(); current.setLevel(HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_YEAR); structure.setCurrent(current); journalAncestor.setIdentity(journal.getId()); journalAncestor.addName(journal.getDefaultName()); structure.addAncestor(journalAncestor);
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; }
@Override public YStructure build(PublicationMeta meta, List<YElement> ancestors) { if (isAlreadyBuilt(meta, ancestors)) { return null; } YStructure structure = new YStructure(getSupportedHierarchyId()); YElement directAncestor = null; if (!ancestors.isEmpty()) { directAncestor = ancestors.get(ancestors.size() - 1); YStructure parentStructure = directAncestor.getStructure(getSupportedHierarchyId()); structure.getAncestors().addAll(parentStructure.getAncestors()); YAncestor ancestor = new YAncestor(structure.getHierarchy()); ancestor.setLevel(getLevel(directAncestor)); AncestorsManagement.copyDataToAncestor(directAncestor, ancestor); structure.getAncestors().add(ancestor); } structure.setCurrent(getCurrent(meta, directAncestor)); return structure; }
yElement.addContent(viedoContnentUrl); YCurrent currentLevel = new YCurrent().setLevel(VideoConstants.VIDEO_CURRENT_LEVEL); yElement.addStructure(new YStructure().setHierarchy(HierarchyWithLevelIds.EXT_HIERARCHY_PUBLICATION).setCurrent(currentLevel)); NativeDocument nativeDocument = documentFactory.createDocument(recordId.getUid()); Document document = documentFactory.getDocument(nativeDocument, yElement);
public static YStructure getOrCreateJournalStructure(YElement element) { YStructure structure = element.getStructure(YConstants.EXT_HIERARCHY_JOURNAL); if (structure == null) { structure = new YStructure(YConstants.EXT_HIERARCHY_JOURNAL); structure.setCurrent(new YCurrent(YConstants.EXT_LEVEL_JOURNAL_ARTICLE)); element.addStructure(structure); } return structure; }
private YAncestor getAncestor(YElement element, String hierarchy, String level) { YStructure structure = element.getStructure(hierarchy); if(structure == null){ return null; } YAncestor ancestor = structure.getAncestor(level); return ancestor; }
@Override public YElement process(Book book, YElement parent, CrossrefIdGenerator generator) { BookSeriesMetadata bookSeriesMetadata = book.getBookSeriesMetadata(); String id = generator.generateBookVolumeId(parent.getId(), bookSeriesMetadata.getVolume()); YElement element = new YElement(); element.setId(id); element.addName(new YName(bookSeriesMetadata.getVolume())); YStructure structure = new YStructure(HierarchyWithLevelIds.EXT_HIERARCHY_BOOK); YCurrent current = new YCurrent(HierarchyWithLevelIds.EXT_LEVEL_BOOK_VOLUME); structure.setCurrent(current); structure.getAncestors().addAll(parent.getStructure(HierarchyWithLevelIds.EXT_HIERARCHY_BOOK).getAncestors()); element.addStructure(structure); return element; }
private YElement buildElement(HierarchyLevel hierarchyLevel, String elementLevel, String parentId, String parentLevel, String parentName) { final String elementId = hierarchyLevel.getId(); final String name = hierarchyLevel.getName(); YElement element = new YElement(elementId); element.setNames(Lists.newArrayList(new YName(name))); final YStructure yStructure = new YStructure(HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL); yStructure.setCurrent(new YCurrent(elementLevel)); final YAncestor parent = new YAncestor(parentLevel, parentId); parent.addName(new YName(parentName)); yStructure.addAncestor(parent); element.setStructures(Lists.newArrayList(yStructure)); return element; } }
for (YExportable yExportable : el) { YElement yElement = (YElement) yExportable; YCurrent current = yElement.getStructure(EXT_HIERARCHY_JOURNAL).getCurrent(); if (current.getLevel().equals(EXT_LEVEL_JOURNAL_JOURNAL)) { yJournal = yElement; yJournal.getStructure(EXT_HIERARCHY_JOURNAL).setAncestors(null); yVolume.getStructure(EXT_HIERARCHY_JOURNAL).setAncestors(al); yIssue.getStructure(EXT_HIERARCHY_JOURNAL).setAncestors(al); yArticle.getStructure(EXT_HIERARCHY_JOURNAL).setAncestors(al);
private void appendStructure(ResourceData resource, YElement yElement) { final String hierarchy = ResourceDataConstants.MAP_TYPE_TO_HIERARCHY.get(resource.getType()); final String current = ResourceDataConstants.MAP_TYPE_TO_CURRENT.get(resource.getType()); YStructure structure = new YStructure(hierarchy); final AncestorData pages = extractAncestorFromHierarchyData(resource, ResourceDataConstants.ANCESTOR_LEVEL_NAME_PAGES); final String position = pages == null ? StringUtils.EMPTY : StringUtils.defaultString(pages.getName()); structure.setCurrent(new YCurrent(current).setPosition(position)); final Collection<YAncestor> ancestors = mapHierarchyToAncestors(resource.getType(), resource.getHierarchy()); if (CollectionUtils.isNotEmpty(ancestors)) { structure.setAncestors(ancestors); } yElement.addStructure(structure); }
private YAncestor getFirstNotVisitedAncestor(YStructure structure, Set<String> visitedElements) { final List<YAncestor> ancestors = structure.getAncestors(); for (int ancestorIndex = ancestors.size() - 1; ancestorIndex >= 0; ancestorIndex--) { final YAncestor currentAncestor = ancestors.get(ancestorIndex); if (!visitedElements.contains(currentAncestor.getIdentity())) { return currentAncestor; } } return null; }
private void updateJournalCurrentLevel() { YStructure struct = yJournal.getStructure(YConstants.EXT_HIERARCHY_JOURNAL); struct.setCurrent(new YCurrent(YConstants.EXT_LEVEL_JOURNAL_JOURNAL)); }
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; }
String hierarchy = ystruct.getHierarchy(); actStructMap.put(hierarchy, ystruct); String hierarchy = expYStruct.getHierarchy(); for (YAncestor actAnc : actYStruct.getAncestors()) { String level = actAnc.getLevel(); actAncMap.put(level, actAnc); for (YAncestor expAnc : expYStruct.getAncestors()) { String level = expAnc.getLevel(); if (actAncMap.containsKey(level)) { for (YAncestor yanc : expYStruct.getAncestors()) { String level = yanc.getLevel(); result.append(level, ResultStatus.FAILED, 1); for (YAncestor yanc : actStructMap.get(hierarchy).getAncestors()) { String level = yanc.getLevel(); result.append(level, ResultStatus.REDUNDANT, 1);
private YStructure createJournalStructWithAncestors(ArticleEditForm form, List<YStructure> journalStructs) { YStructure journal; YAncestor existingIssue = null; if(journalStructs.size() == 0) { journal = new YStructure(YConstants.EXT_HIERARCHY_JOURNAL); } else { journal = journalStructs.get(0); existingIssue = setNonIssueAncestorsAndGetExisitingIssue(form.getIssueId(), journal); } addIssue(journal, existingIssue, form.getIssueId()); return journal; }