public ToscaEdge createEdge(ToscaNode sourceVertex, ToscaNode targetVertex) { return new ToscaEdge(sourceVertex, targetVertex); } }
private TEntityTemplate[] getTemplates(ToscaEntity left, ToscaEntity right) { TEntityTemplate detectorNodeTemplate, candidate; if (this.detectorElements.contains(left.getTemplate())) { detectorNodeTemplate = left.getTemplate(); candidate = right.getTemplate(); } else { detectorNodeTemplate = right.getTemplate(); candidate = left.getTemplate(); } return new TEntityTemplate[] {detectorNodeTemplate, candidate}; } }
@Override public boolean isCompatible(ToscaEdge left, ToscaEdge right) { return right.getActualType().equals(left.getActualType()); } }
public ArrayList<String> getNodeIdsToBeReplaced() { ArrayList<String> ids = new ArrayList<>(); this.detectorGraph.vertexSet().forEach(toscaNode -> ids.add(graphMapping.getVertexCorrespondence(toscaNode, false).getTemplate().getId()) ); return ids; } }
@Override public boolean isCompatible(ToscaNode left, ToscaNode right) { return StringUtils.equals(left.getTemplate().getName(), right.getTemplate().getName()); }
public ToscaNode getReferenceNode() { return vertexSet().stream().findAny().orElse(null); } }
public boolean isLeftSubtypeOfRight(ToscaEntity left, ToscaEntity right) { return left.getTypes().stream().anyMatch(lType -> equals(lType, right.getActualType())); }
@Override public boolean isCompatible(ToscaEdge left, ToscaEdge right) { return StringUtils.equals(left.getTemplate().getName(), right.getTemplate().getName()); } }
protected static ToscaNode createAndInitializeTOSCANode(TNodeTemplate nodeTemplate) { ToscaNode node = new ToscaNode(); node.setNodeTemplate(nodeTemplate); addTEntityTypes(nodeTemplate.getType(), node, TNodeType.class); return node; }
@Override public boolean isCompatible(ToscaNode left, ToscaNode right) { return left.getActualType().equals(right.getActualType()); }
public void setTemplate(TRelationshipTemplate template) { this.template = template; this.setId(template.getId()); } }
public void setNodeTemplate(TNodeTemplate nodeTemplate) { this.nodeTemplate = nodeTemplate; this.setId(nodeTemplate.getId()); } }
public List<TRelationshipType> getRelationshipTypes() { return getTypes().stream().map(tEntityType -> (TRelationshipType) tEntityType).collect(Collectors.toList()); }
public List<TNodeType> getNodeTypes() { return getTypes().stream().map(TNodeType.class::cast).collect(Collectors.toList()); }
public static void addTEntityTypes(QName nodeTypeQName, ToscaEntity entity, Class<? extends TEntityType> tEntityTypeClass) { TEntityType entityType = getEntityType(nodeTypeQName, tEntityTypeClass); entity.addTEntityType(entityType); Optional.of(entityType).map(TEntityType::getDerivedFrom) .map(TEntityType.DerivedFrom::getTypeRef) .ifPresent(qName -> addTEntityTypes(qName, entity, tEntityTypeClass)); }
protected static void initializeTOSCAEdge(TRelationshipTemplate tRelationshipTemplate, ToscaEdge edge) { edge.setTemplate(tRelationshipTemplate); addTEntityTypes(tRelationshipTemplate.getType(), edge, TRelationshipType.class); }
public boolean isApplicable(RefinementCandidate candidate, TTopologyTemplate topology) { return candidate.getDetectorGraph().vertexSet() .stream() .allMatch(vertex -> { TNodeTemplate matchingNode = candidate.getGraphMapping().getVertexCorrespondence(vertex, false).getTemplate(); return this.canRedirectExternalRelations(candidate, matchingNode, topology); }); }
public boolean isPoliciesCompatible(ToscaNode left, ToscaNode right) { if (left.getTemplate().getPolicies() != null) { if (right.getTemplate().getPolicies() != null) { return mapToStringList(right.getTemplate().getPolicies().getPolicy()).containsAll(mapToStringList(left.getTemplate().getPolicies().getPolicy())); } else { return false; } } return true; }
public Map<ToscaNode, ToscaNode> getSubGraphMappingAsMap(GraphMapping mapping, ToscaGraph subGraph) { Map<ToscaNode, ToscaNode> result = new HashMap<>(); for (ToscaNode node : subGraph.vertexSet()) { Optional.of(mapping.getVertexCorrespondence(node, false)).map(vertex -> (ToscaNode) vertex).ifPresent(vertex -> result.put(node, vertex)); } return result; }