/** * Returns hierarchies to be processed from given {@link Ancestors} object. * Takes supported hierarchies into account. * @param ancestors * @return hierarchies to be processed */ protected Collection<String> getHierarchies(Ancestors ancestors) { if (supportedHierarchies!=null && supportedHierarchies.size()>0) { Set<String> result = new HashSet<String>(); for (String currentAncestorHier : ancestors.getHierarchies()) { if (supportedHierarchies.contains(currentAncestorHier)) { result.add(currentAncestorHier); } } return result; } else { return ancestors.getHierarchies(); } }
public static Ancestor journal(Ancestors ancestors) { return ancestors.getAncestorAtLevel(HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_JOURNAL); }
@Override protected void processElement(Element<CatalogElement> element) throws Exception { Ancestors ancestors = new Ancestors(); for (Entry<String, List<Ancestor>> hierarchyData : element.getData().getRelations().entrySet()) { ancestors.setAncestorsOfHierarchy(hierarchyData.getKey(), hierarchyData.getValue()); } metadataImporter.matchDesklightMetadata(element.getData().getElement(), ancestors); }
private ElementTitlePart findTitlePart(Ancestors ancestors) { for (String hierarchyId : ancestors.getHierarchies()) { Ancestor ancestor = ancestors.getCurrentInHierarchy(hierarchyId); ElementTitlePart titlePart = levelToTitlePartMap.get(ancestor.getLevelExtid()); if (titlePart!=null) { return titlePart; } } return null; }
@Override public Map<String, Serializable> provideParams(YaddaObjectID id, ParamProviderContext<CatalogObject<String>> context) throws ParamProviderException { Map<String, Serializable> result = new HashMap<String, Serializable>(); String ancestorsXML = getAncestorsXML(id, context); if (ancestorsXML!=null) { Ancestors ancestors = (Ancestors) ancestorSerializer.toObject( null, ancestorsXML); List<Ancestor> journalAncestors = ancestors.getAncestorsOfHierarchy( RepositoryStringConstants.HIERARCHY_JOURNAL); if (journalAncestors!=null && journalAncestors.size()>0) { String[] array = new String[journalAncestors.size()]; for (int i=0; i<journalAncestors.size(); i++) { array[i] = journalAncestors.get(i).getExtid(); } result.put(ANCESTORS_PARAM_KEY_NAME, array); } return result; } else { throw new ParamProviderException("unable to find ancestors part " + "for id: " + id); } }
ce.hasChildren(), cutoffDate, ancestorsToWrite); for (final String hierarchyId : ancestors.getHierarchies()) { ce.setRelations(hierarchyId, ancestors.getAncestorsOfHierarchy(hierarchyId));
()); final Ancestors parentAncestors = parentWithAncestors.getAncestors(); ancestorList = parentAncestors.getAncestorsOfHierarchy(YConstants.EXT_HIERARCHY_JOURNAL); Ancestors ancestors = new Ancestors(); ancestors.setAncestorsOfHierarchy(YConstants.EXT_HIERARCHY_JOURNAL, ancestorList);
&& (parentAncestors.getTimestamp() == null || parentAncestors.getTimestamp().before(cutoffDate)); parentAncestors = new Ancestors(); if (forceRebuild || parentAncestors.getAncestorsOfHierarchy(hierarchyId) == null) { if (parentAncestors.getAncestorsOfHierarchy(hierarchyId) != null) { ancestorsForHierarchy.addAll(parentAncestors.getAncestorsOfHierarchy(hierarchyId));
List<IACLObject> aclObjects = new ArrayList<IACLObject>(); for (final String currentHierarchy : getHierarchies(ancestors)) { List<Ancestor> currentHierAncestors = ancestors.getAncestorsOfHierarchy( currentHierarchy); List<IACLObject> currentHierACLObjects = new ArrayList<IACLObject>();
String volume = ""; if (ancestors != null) { for (final String hierarchyId : ancestors.getHierarchies()) { for (Ancestor ancestor:ancestors.getAncestorsOfHierarchy(hierarchyId)) { String id = ancestor.getExtid(); YElement element = loadElementFromYaddaCatalog(id);
List<Ancestor> ancestorList = parentAncestors.getAncestorsOfHierarchy(YConstants.EXT_HIERARCHY_JOURNAL); Ancestors ancestors = new Ancestors(); ancestors.setAncestorsOfHierarchy(YConstants.EXT_HIERARCHY_JOURNAL, ancestorList);
@Override public Result evaluate(EvaluationContext ctx) throws IndeterminateException { try { BuiltInFunction combinationAlg = provideFunction( hierarchyEvaluatableCombiningAlgorithm); Iterator<Evaluatable> evalIterator = new CatalogHierarchyEvaluatableIterator( ancestors.getAncestorsOfHierarchy(currentHierarchy), catalogFacade, policyBuilder); // all evaluatable comb algorithms take Iterator<Evaluatable> as parameter // instead of Evaluatable[] to allow lazy Evaluatable resolution Result result = (Result) combinationAlg.invoke( ctx, new Object[] {evalIterator}); log.debug("got single hierarchy result decision: " + result.getDecision() + " for hierarchy: " + currentHierarchy); return result; } catch (Exception e) { throw new IndeterminateException("exception thrown when evaluating result" + " for comb alg: " + hierarchyEvaluatableCombiningAlgorithm + " and for hierarchy: " + currentHierarchy, e); } } });
private Ancestor volume(Ancestors ancestors) { return ancestors.getAncestorAtLevel(HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_VOLUME); }
@Override protected Chunk doProcessChunk(Chunk data, Map<String, Serializable> context, IProcessListener processListener, ProcessingStats stats) throws Exception { List<Element> elementList = new ArrayList<Element>(); List<Ancestors> ancestorsList = new ArrayList<Ancestors>(); for (CatalogElement item : data.getItems()) { if (item == null || item.getElement() == null) continue; Ancestors ancestors = new Ancestors(); for (Entry<String, List<Ancestor>> hierarchyData : item.getRelations().entrySet()) ancestors.setAncestorsOfHierarchy(hierarchyData.getKey(), hierarchyData.getValue()); elementList.add(item.getElement()); ancestorsList.add(ancestors); } if (! elementList.isEmpty()) metadataImporter.matchDesklightMetadata(elementList, ancestorsList); return data; }
/** * Returns hierarchies to be processed from given {@link Ancestors} object. * Takes supported hierarchies into account. * @param ancestors * @return hierarchies to be processed */ protected Collection<String> getHierarchies(Ancestors ancestors) { if (supportedHierarchies!=null && supportedHierarchies.size()>0) { Set<String> result = new HashSet<String>(); for (String currentAncestorHier : ancestors.getHierarchies()) { if (supportedHierarchies.contains(currentAncestorHier)) { result.add(currentAncestorHier); } } return result; } else { return ancestors.getHierarchies(); } }
ancestorsPart.getData()); Iterator<Evaluatable> evalIterator = new CatalogHierarchyEvaluatableIterator( ancestors.getAncestorsOfHierarchy(predefinedHierarchyExtId), catalogFacade, policyBuilder);
private Ancestor year(Ancestors ancestors) { return ancestors.getAncestorAtLevel(HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_YEAR); }
@Override protected Chunk doProcessChunk(Chunk data, Map<String, Serializable> context, IProcessListener processListener, ProcessingStats stats) throws Exception { List<Element> elementList = new ArrayList<Element>(); List<Ancestors> ancestorsList = new ArrayList<Ancestors>(); for (CatalogElement item : data.getItems()) { if (item == null || item.getElement() == null) continue; Ancestors ancestors = new Ancestors(); for (Entry<String, List<Ancestor>> hierarchyData : item.getRelations().entrySet()) ancestors.setAncestorsOfHierarchy(hierarchyData.getKey(), hierarchyData.getValue()); elementList.add(item.getElement()); ancestorsList.add(ancestors); } if (! elementList.isEmpty()) metadataImporter.importDesklightMetadata(elementList, ancestorsList); return data; }
ancestorsPart.getData()); Collection<Evaluatable> evaluatables = new ArrayList<Evaluatable>( ancestors.getHierarchies().size()); for (final String currentHierarchy : getHierarchies(ancestors)) { evaluatables.add(new Evaluatable() {
/** * Retrieves publication date from ancestors or null when not found. * @param ce * @return */ protected Date getPublicationDateFromAncestors(CatalogElement ce) { if (ce!=null && ce.getAncestors()!=null) { List<Ancestor> anc = ce.getAncestors().getAncestorsOfHierarchy(ID_HIERARACHY_JOURNAL); if (anc!=null) { for (Ancestor currentAnc : anc) { if (currentAnc.getPublishedDate()!=null) { try { return currentAnc.getPublishedDate().getDate(); } catch (ParseException e) { log.error("unable to retrieve publication date from ancestor " + currentAnc.getExtid() + " of level " + currentAnc.getLevelExtid() + " of element " + ce.getExtId(), e); } } } } } // fallback return null; }