@Override public void errorOccurs(Reachable reachable, Throwable t) { for (IBuildingDecoration d : decorations) { d.errorOccurs(this, reachable, t); } callBack.errorOccurs(reachable, t); }
@Override public void endBuild(Reachable reachable) { for (IBuildingDecoration d : decorations) { d.endBuild(this, reachable); } callBack.endBuild(reachable); }
@Override public void newUpwardRelation( Object traceability, Object resource, Object source, List<? extends Object> targets, TType kind) { String check = "arguments must be different to null"; Preconditions.checkNotNull(resource, check); Preconditions.checkNotNull(source, check); Preconditions.checkNotNull(targets, check); Preconditions.checkNotNull(kind, check); boolean keepOriginalLink = true; for (IBuildingDecoration d : decorations) { keepOriginalLink &= d.newUpwardRelation(this, traceability, resource, source, targets, kind); } if (keepOriginalLink) { Composite c = getComposite(traceability, resource, source, targets, kind); callBack.newUpwardRelation(c.traceabilityObject, c.resource, c.source, c.targets, c.kind); } }
@Override public boolean newUpwardRelation( IBuilderCallBack callBack, Object traceability, Object resource, Object source, List<? extends Object> targets, TType kind) { if (kind instanceof RelationBasedType) { // prevent recursive call return true; } // in case of no configuration registered the elements are not modified if (defaultConfiguration == null) { return true; } Reachable reachableSource = getReachable(source); Reachable reachableTrac = getReachable(traceability); boolean newOne = true; for (Object t : targets) { Reachable reachableTarget = getReachable(t); Iterable<Relation> relations = RelationUtils.getAgregatingRelations( kind, defaultConfiguration, reachableSource, reachableTarget, DIRECTION.UPWARD); for (Relation r : relations) { newOne = false; RelationBasedType relBasedType = new RelationBasedType(r, kind); callBack.newUpwardRelation(traceability, resource, source, targets, relBasedType); if (currentStorage != null) { currentStorage.addUpdateProperty( reachableTrac, TraceabilityAttributesManager.RELATION_NAME, r.getKind()); } } } return newOne; }
@Override public boolean needsBuild(Reachable reachable) { return callBack.needsBuild(reachable); }