private List<YStructure> setNonJournalStructsAndGetJournalStructs(YElement article) { List<YStructure> journalStructures = new ArrayList<>(); List<YStructure> nonJournalStructs = new ArrayList<>(); for(YStructure struct : article.getStructures()) { if(!struct.getHierarchy().equals(YConstants.EXT_HIERARCHY_JOURNAL)) { nonJournalStructs.add(struct); } else { journalStructures.add(struct); } } article.setStructures(nonJournalStructs); return journalStructures; }
@Deprecated private String getPosition(YElement element) { String position = null; for(YStructure structure : element.getStructures()) { YCurrent current = structure.getCurrent(); position = current.getPosition(); if(position != null) { break; } } return position; }
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; }
public Map<String, YDate> extractDates(YElement yElement) { Map<String, YDate> dates = processYDates(yElement.getDates()); dates.putAll(extractDatesFromHierarchy(yElement.getStructures())); return dates; }
private ThumbnailRef findThumbnailPathInAncestors(YElement element) { List<YStructure> yStructures = element.getStructures(); for (YStructure yStructure : yStructures) { List<YAncestor> ancestors = Lists.reverse(yStructure.getAncestors()); for (YAncestor yAncestor : ancestors) { ThumbnailRef thumbnailPath = findThumbnailPath(yAncestor, yAncestor.getIdentity()); if (thumbnailPath != null) { return thumbnailPath; } } } return null; }
List<Pair<String, String>> getHierarchyLevels(YExportable exp) { ArrayList<Pair<String, String>> ret = new ArrayList<Pair<String, String>>(); if (exp instanceof YElement) { for (YStructure str : ((YElement) exp).getStructures()) { String h = str.getHierarchy(); String l = str.getCurrent().getLevel(); ret.add(new Pair<String, String>(l,h)); } } return ret; }
protected IViewBuilder<CatalogInformationEnhancedObject<YExportable>> resolveElement(YElement e, Map<String, Object> parameters) { for (YStructure level : e.getStructures()) { final String levelId = level.getCurrent().getLevel(); if (elementViewBuilders.containsKey(levelId)) { return elementViewBuilders.get(levelId); } } throw new SystemException(Modules.DETAILS, "View for BWMETA1 element " + e.getId() + " not found"); }
protected void fillFromStructures(YElement yElement, List<YExportable> referedElements, Map<String, List<StringWithAttributes>> ret) { List<YStructure> structures = yElement.getStructures(); String hierarchy = resolveHierarchy(structures); YStructure struct = yElement.getStructure(hierarchy); String yLevelStr = null; if (struct != null) { yLevelStr = struct.getCurrent() == null ? null : struct.getCurrent().getLevel(); } if (yLevelStr != null) { int lastIndexOf = yLevelStr.lastIndexOf("_"); String yTypeStr = yLevelStr.substring(lastIndexOf + 1); ret.put(E_TYPE, new ArrayList<StringWithAttributes>()); ret.get(E_TYPE).add(new StringWithAttributes(yTypeStr)); } }
@Override public String fetchCurrentStructureLevel(YElement yElement) { for (YStructure structure : yElement.getStructures()) { if (structure.getCurrent() != null) { return structure.getCurrent().getLevel(); } } return null; }
private boolean isElementShowable(OaiItem item) { if (item.getYobject() == null) { return false; // we.meta.getId().getId().startsWith("bwmeta1.element."); } for (YStructure s : item.getYobject().getStructures()) { if (acceptedLevels.contains(s.getCurrent().getLevel())) { return true; } } return false; }
@Override public void store(EnrichedPayload<YElement>[] data, ProcessContext ctx) throws Exception { for(EnrichedPayload<YElement> enrichedP : data){ log.info("----------------------\n" + "Element Id:" + enrichedP.getObject().getId() + "\n" + "Element Name:" + enrichedP.getObject().getNames().get(0) + "\n" + "Element Structures:" + enrichedP.getObject().getStructures() + "\n"); } }
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; }
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; }
private PositionExtractor getPosition(YElement element) { String position = null; List<YStructure> yStrictures = element.getStructures(); for(YStructure structure : yStrictures){ YCurrent current = structure.getCurrent(); position = current.getPosition(); if(position!=null){ break; } } return new PositionExtractor(position); }
@Override public void parseMetadata(YElement element, PublicationMeta pm, YLanguage defaultLanguage, List<YElement> ancestors) { String pos = numberingGroupToPages(pm.getNumberingGroup()); if (pos != null) { element.getStructures().get(0).getCurrent().setPosition(pos); } }
private ElementType resolveElementType(ElementMetadata elementMetadata) { if (elementMetadata.getContent() == null || !(elementMetadata.getContent() instanceof YElement)) return ElementType.ARTICLE; YElement yElement = (YElement) elementMetadata.getContent(); return ElementType.resolveTypeFromStructure(yElement.getStructures()); }
@Override public void parseMetadata(YElement element, PublicationMeta pm, YLanguage defaultLanguage, List<YElement> ancestors) { String partNumber = element.getStructures().get(0).getCurrent().getPosition(); if(StringUtils.isNotBlank(partNumber)){ String id = ancestors.get(ancestors.size() - 1).getId() + "-p-" + partNumber; id = WileyUtils.processId(id); element.setId(id); } if (element.getNames().size() == 1) { YName name = YModelUtils.fetchDefaultName(element); if(StringUtils.equals(NameTypes.NM_ALTERNATIVE, name.getType()) && StringUtils.isNotBlank(partNumber)){ name.setText(BaseYModelUtils.buildRichText(name.getText() + StringUtils.SPACE + partNumber)); } name.setType(NameTypes.NM_CANONICAL); } }
protected void fillType(HtmlMetaHeaders metadata, YElement yElement) { for (YStructure yStructure : yElement.getStructures()) { if (yStructure.getCurrent() != null) { if (YaddaIdConstants.ID_LEVEL_JOURNAL_ARTICLE.equals(yStructure.getCurrent().getLevel())) { metadata.addMetadataName(DC_NAMESPACE + SEPARATOR + DublinCoreStrings.E_TYPE, DC_ARTICLE_TYPE); } else if (YaddaIdConstants.ID_LEVEL_BOOK_BOOK.equals(yStructure.getCurrent().getLevel())) { metadata.addMetadataName(DC_NAMESPACE + SEPARATOR + DublinCoreStrings.E_TYPE, DC_BOOK_TYPE); } } } }
public StructureData preparePublisher(YElement yElement) { for (YStructure structure : yElement.getStructures()) { YAncestor ancestor = structure.getAncestor(YaddaIdConstants.ID_LEVEL_JOURNAL_PUBLISHER); if (ancestor != null) { return new StructureData(ancestor.getIdentity(), YModelUtils.getDefaultName(ancestor)); } } return new StructureData("", ""); }
/** * Creates obcect using YElement * * @param yElement * metadata element used to create object */ public PublicationData createPublicationData(YElement yElement) { PublicationData pd = new PublicationData(); populateCommonProperties(yElement, pd); boolean available = yModelPropertyExtractor.isContentAvailable(yElement); pd.setContentAvailaibility(available ? ContentAvaiability.AVAILABLE : ContentAvaiability.NOT_AVAILABLE); pd.setObjectType(ElementType.resolveTypeFromStructure(yElement.getStructures())); pd.setThumbnailPath(yModelPropertyExtractor.extractThumbnailPath(yElement)); return pd; }