public abstract Transformed<Out> transform( PlannerContext plannerContext, In rootGraph ); }
@Override protected ElementGraph prepareForMatch( ProcessLogger processLogger, Transformed<ElementGraph> transformed, ElementGraph graph ) { if( graphTransformer == null ) return graph; if( processLogger.isDebugEnabled() ) processLogger.logDebug( "transforming with: {}", graphTransformer.getClass().getSimpleName() ); Transformed child = graphTransformer.transform( transformed.getPlannerContext(), graph ); transformed.addChildTransform( child ); return child.getEndGraph(); } }
@Override protected ElementGraph prepareForMatch( ProcessLogger processLogger, Transformed<ElementGraph> transformed, ElementGraph graph ) { if( graphTransformer == null ) return makeAnnotated( graph ); Transformed child = graphTransformer.transform( transformed.getPlannerContext(), graph ); transformed.addChildTransform( child ); ElementGraph endGraph = child.getEndGraph(); return makeAnnotated( endGraph ); }
transformed = transformer.transform( plannerContext, child );
public Transformed<ElementSubGraph> transform( PlannerContext plannerContext, ElementGraph rootGraph ) { Transformed<ElementSubGraph> transformed = new Transformed<>( plannerContext, this, subGraphMatcher, rootGraph ); try { Transformed contractedTransformed = graphTransformer.transform( plannerContext, rootGraph ); // contracted graph transform transformed.addChildTransform( contractedTransformed ); // apply contracted sub-graph matcher to get the bounded sub-graph of the original graph ElementGraph contractedGraph = contractedTransformed.getEndGraph(); Match match = findAllPrimaries ? subGraphFinder.findAllMatches( plannerContext, contractedGraph ) : subGraphFinder.findFirstMatch( plannerContext, contractedGraph ); if( !match.foundMatch() ) return transformed; ElementGraph contractedSubGraph = match.getMatchedGraph(); ElementSubGraph resultSubGraph = asSubGraphOf( rootGraph, contractedSubGraph ); // the bounded sub-graph of the rootGraph transformed.setEndGraph( resultSubGraph ); return transformed; } catch( Throwable throwable ) { throw new TransformException( throwable, transformed ); } }