private boolean isIncoming(final EdgeCardinalityContext.Direction direction) { return EdgeCardinalityContext.Direction.INCOMING.equals(direction); } }
@Override public boolean accepts(final EdgeOccurrences rule, final EdgeCardinalityContext context) { final EdgeCardinalityContext.Direction direction = rule.getDirection(); return context.getEdgeRole().equals(rule.getConnectorRole()) && direction.equals(context.getDirection()) && context.getRoles().contains(rule.getRole()); }
@Override public boolean accepts(final CanContain rule, final ContainmentContext context) { return context.getParentRoles().contains(rule.getRole()); }
@Override public boolean accepts(final EdgeOccurrences rule, final ConnectorCardinalityContext context) { final Edge<? extends View<?>, Node> edge = context.getEdge(); final Element<? extends View<?>> candidate = context.getCandidate(); final String edgeId = evalUtils.getElementDefinitionId(edge); final Set<String> candidateRoles = evalUtils.getLabels(candidate); // Take into account that there is no need to provide the candidate count value, as not necessary // just to check if the handler accepts the runtime rule and candidates. return edgeCardinalityEvaluationHandler.accepts(rule, RuleContextBuilder.DomainContexts.edgeCardinality(candidateRoles, edgeId, -1, context.getDirection(), context.getOperation())); }
public static void verifyConnection(final GraphConnectionContext context, final Edge<? extends View<?>, ? extends Node> connector, final Node<? extends View<?>, ? extends Edge> sourceNode, final Node<? extends View<?>, ? extends Edge> targetNode) { assertNotNull(context); final Edge<? extends View<?>, ? extends Node> connector1 = context.getConnector(); final Optional<Node<? extends View<?>, ? extends Edge>> source = context.getSource(); final Optional<Node<? extends View<?>, ? extends Edge>> target = context.getTarget(); assertNotNull(connector1); assertEquals(connector, connector1); if (null != sourceNode) { assertEquals(sourceNode, source.get()); } if (null != targetNode) { assertEquals(targetNode, target.get()); } }
final Optional<CardinalityContext.Operation> operation) { assertNotNull(context); final EdgeCardinalityContext.Direction direction1 = context.getDirection(); final Edge<? extends View<?>, Node> edge1 = context.getEdge(); final Element<? extends View<?>> candidate1 = context.getCandidate(); final Graph graph1 = context.getGraph(); final Optional<CardinalityContext.Operation> operation1 = context.getOperation(); assertNotNull(direction1); assertNotNull(edge1);
public static void verifyCardinality(final ElementCardinalityContext context, final Graph graph) { assertNotNull(context); final Graph graph1 = context.getGraph(); final Optional<Element<? extends View<?>>> candidate1 = context.getCandidate(); final Optional<CardinalityContext.Operation> operation1 = context.getOperation(); assertNotNull(graph1); assertNotNull(operation1); assertEquals(graph, graph1); }
@Override public boolean accepts(final CanContain rule, final NodeContainmentContext context) { final Set<String> parenteLabels = evalUtils.getLabels(context.getParent()); // As for acceptance checking, the delegated handler only needs the parent node id, no need // to calculate roles for the candidate node. return containmentHandler.accepts(rule, RuleContextBuilder.DomainContexts.containment(parenteLabels, Collections.emptySet())); }
private boolean acceptsContainment(final RuleExtension rule, final NodeContainmentContext context) { final Optional<Class<?>> parentType = getParentType(rule, context.getParent()); if (!hasParentType(rule) || !parentType.isPresent()) { return true; } final String expectedParentId = parentType.map(BindableAdapterUtils::getDefinitionId).orElse(null); final Element<? extends Definition<?>> parent = context.getParent(); final Node<? extends Definition<?>, ? extends Edge> candidate = context.getCandidate(); final String parentId = evalUtils.getElementDefinitionId(parent); return parentId.equals(expectedParentId) || hasOldParentType(candidate, expectedParentId); }
@Override public boolean accepts(final CanDock rule, final NodeDockingContext context) { final Set<String> parentLabels = evalUtils.getLabels(context.getParent()); // As for acceptance checking, the delegated handler only needs the parent node id, no need // to calculate roles for the candidate node, so using an empty set. return dockingHandler.accepts(rule, RuleContextBuilder.DomainContexts.docking(parentLabels, Collections.emptySet())); }
@Before public void setup() throws Exception { when(context.getEdgeRole()).thenReturn(EDGE_ID); when(context.getRoles()).thenReturn(ROLES); tested = new EdgeCardinalityEvaluationHandler(); }
public static void verifyDocking(final NodeDockingContext context, final Element<? extends Definition<?>> parent, final Node<? extends Definition<?>, ? extends Edge> candidate) { assertNotNull(context); final Element<? extends Definition<?>> source = context.getParent(); final Node<? extends Definition<?>, ? extends Edge> target = context.getCandidate(); assertNotNull(source); assertNotNull(target); assertEquals(parent, source); assertEquals(candidate, target); }
private boolean acceptsConnection(final RuleExtension rule, final GraphConnectionContext context) { final Edge<? extends View<?>, ? extends Node> connector = context.getConnector(); return evalUtils.getElementDefinitionId(connector).equals(rule.getId()); }
@Override public boolean accepts(final Occurrences rule, final CardinalityContext context) { return context.getRoles().contains(rule.getRole()); }
@Override public boolean accepts(final CanDock rule, final DockingContext context) { return context.getParentRoles().contains(rule.getRole()); }
@Override public boolean accepts(final CanConnect rule, final ConnectionContext context) { return rule.getRole().equals(context.getConnectorRole()); }
@Override public boolean accepts(final RuleExtension rule, final NodeContainmentContext context) { if (!GraphUtils.hasConnections(context.getCandidate())) { //this is not necessary to check rules in case there is no connections return false; } return acceptsContainment(rule, context); }
public static void verifyCardinality(final ElementCardinalityContext context, final Graph graph, final Element<? extends View<?>> candidate, final CardinalityContext.Operation operation) { assertNotNull(context); final Graph graph1 = context.getGraph(); final Optional<Element<? extends View<?>>> candidate1 = context.getCandidate(); final Optional<CardinalityContext.Operation> operation1 = context.getOperation(); assertNotNull(graph1); assertNotNull(operation1); assertEquals(graph, graph1); assertEquals(candidate, candidate1.orElse(null)); assertEquals(operation, operation1.orElse(null)); }
public static void verifyContainment(final NodeContainmentContext containmentContext, final Element<? extends Definition<?>> parent, final Node<? extends Definition<?>, ? extends Edge> candidate) { assertNotNull(containmentContext); final Element<? extends Definition<?>> source = containmentContext.getParent(); final Node<? extends Definition<?>, ? extends Edge> target = containmentContext.getCandidate(); assertNotNull(source); assertEquals(parent, source); assertNotNull(target); assertEquals(candidate, target); }
@Before public void setup() throws Exception { when(context.getRoles()).thenReturn(ROLES); tested = new CardinalityEvaluationHandler(); }