public void validate(AstScriptNode scriptAST) throws Exception { ValidateStreamsVisitor validateStreams = new ValidateStreamsVisitor(); scriptAST.accept(validateStreams, new ValidateStreamsVisitor.State()); }
@Override public AstScriptNode parse(InputStream input) throws ScriptParseException { try { AstScriptNode script = parser.parse(input); InjectEventsVisitor injectEvents = new InjectEventsVisitor(); InjectEventsVisitor.State injectEventsState = new InjectEventsVisitor.State(); script = script.accept(injectEvents, injectEventsState); InjectBarriersVisitor injectBarriers = new InjectBarriersVisitor(); script = script.accept(injectBarriers, new InjectBarriersVisitor.State()); InjectFlushVisitor injectFlush = new InjectFlushVisitor(); script = script.accept(injectFlush, new InjectFlushVisitor.State()); AssociateStreamsVisitor associateStreams = new AssociateStreamsVisitor(); script = script.accept(associateStreams, new AssociateStreamsVisitor.State()); return script; } catch (ScriptParseException e) { throw e; } catch (Exception e) { throw new ScriptParseException(e); } } }
public ChannelFuture prepare(String expectedScript) throws Exception { if (preparedFuture != null) { throw new IllegalStateException("Script already prepared"); } if (LOGGER.isDebugEnabled()) { LOGGER.debug("Expected script:\n" + expectedScript); } final ScriptParser parser = new Parser(); AstScriptNode scriptAST = parser.parse(new ByteArrayInputStream(expectedScript.getBytes(UTF_8))); final ScriptValidator validator = new ScriptValidator(); validator.validate(scriptAST); if (LOGGER.isDebugEnabled()) { LOGGER.debug("Parsed script:\n" + scriptAST); } RegionInfo scriptInfo = scriptAST.getRegionInfo(); progress = new ScriptProgress(scriptInfo, expectedScript); final GenerateConfigurationVisitor visitor = new GenerateConfigurationVisitor(bootstrapFactory, addressFactory); configuration = scriptAST.accept(visitor, new GenerateConfigurationVisitor.State(barriersByName)); preparedFuture = prepareConfiguration(); return preparedFuture; }