@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { state.readWriteState = ReadWriteState.NONE; AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptableNode : acceptNode.getAcceptables()) { acceptableNode.accept(this, state); } state.streams.add(newAcceptNode); return null; }
public AstAcceptNodeBuilder setOption(String optionName, AstValue<?> optionValue) { node.getOptions().put(optionName, optionValue); return this; }
@Override protected boolean equalTo(AstRegion that) { return that instanceof AstAcceptNode && equalTo((AstAcceptNode) that); }
state.pipelineAsMap = new LinkedHashMap<>(); for (AstAcceptableNode acceptableNode : acceptNode.getAcceptables()) { RegionInfo acceptInfo = acceptNode.getRegionInfo(); state.configuration.getServerPipelines(acceptInfo).addAll(pipelines); state.configuration.getClientAndServerPipelines().addAll(pipelines); acceptOptions.putAll(acceptNode.getOptions()); OptionsResolver optionsResolver = new OptionsResolver(acceptOptions); String notifyName = acceptNode.getNotifyName(); Barrier notifyBarrier = null; if (notifyName != null) { Supplier<URI> locationResolver = acceptNode.getLocation()::getValue; ServerBootstrapResolver serverResolver = new ServerBootstrapResolver(bootstrapFactory, addressFactory, pipelineFactory, locationResolver, optionsResolver, notifyBarrier);
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); String acceptName = acceptNode.getAcceptName(); String newAcceptName = acceptName != null ? acceptName : String.format("~accept~%d", ++state.implicitAcceptCount); state.accepts.put(newAcceptName, newAcceptNode); state.implicitAcceptName = newAcceptName; state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptable : acceptNode.getAcceptables()) { assert equivalent(acceptName, acceptable.getAcceptName()); acceptable.accept(this, state); } state.streams.add(newAcceptNode); return null; }
@Override public AstAcceptNode visitAcceptNode(AcceptNodeContext ctx) { AstLocationVisitor locationVisitor = new AstLocationVisitor(factory, environment); AstValue<URI> location = locationVisitor.visit(ctx.acceptURI); node = new AstAcceptNode(); node.setLocation(location); if (ctx.as != null) { node.setAcceptName(ctx.as.getText()); } if (ctx.notify != null) { node.setNotifyName(ctx.notify.getText()); } super.visitAcceptNode(ctx); node.setRegionInfo(asParallelRegion(childInfos, ctx)); return node; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptable : acceptNode.getAcceptables()) { state.readState = StreamState.OPEN; state.writeState = StreamState.OPEN; acceptable.accept(this, state); } return null; }
@Override public R done() { AstAcceptNode acceptNode = result.node; acceptNode.getAcceptables().add(node); return result; }
public AbstractAstAcceptNodeBuilder(R result) { super(new AstAcceptNode(), result); }
@Override public AstAcceptNode visitAcceptNode(AcceptNodeContext ctx) { AstAcceptNodeVisitor visitor = new AstAcceptNodeVisitor(factory, environment); AstAcceptNode acceptNode = visitor.visitAcceptNode(ctx); if (acceptNode != null) { childInfos().add(acceptNode.getRegionInfo()); } return acceptNode; }
@Override public AstAcceptNode visitServerStreamableNode(ServerStreamableNodeContext ctx) { AstStreamableNodeVisitor visitor = new AstStreamableNodeVisitor(factory, environment); AstStreamableNode streamableNode = visitor.visitServerStreamableNode(ctx); if (streamableNode != null) { node.getStreamables().add(streamableNode); childInfos().add(streamableNode.getRegionInfo()); } return node; }
public ScriptNested<R> setAcceptName(String acceptName) { node.setAcceptName(acceptName); return this; }
@Override public AstScriptNode visit(AstScriptNode script, State state) { AstScriptNode newScript = new AstScriptNode(); newScript.setRegionInfo(script.getRegionInfo()); newScript.getProperties().addAll(script.getProperties()); state.streams = newScript.getStreams(); for (AstStreamNode stream : script.getStreams()) { stream.accept(this, state); } // remove all associated streams from the main script // But this appears to be a NOOP. Acceptables are not added as streams! for (AstAcceptNode accept : state.accepts.values()) { newScript.getStreams().removeAll(accept.getAcceptables()); } return newScript; }
public AstAcceptNodeBuilder() { this(new AstAcceptNode()); }
public AstAcceptNodeBuilder setAcceptName(String acceptName) { node.setAcceptName(acceptName); return this; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { state.connectivityState = ConnectivityState.NONE; AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptable : acceptNode.getAcceptables()) { acceptable.accept(this, state); } state.streams.add(newAcceptNode); return null; }
public <T> ScriptNested<R> setOption(String optionName, AstValue<?> optionValue) { node.getOptions().put(optionName, optionValue); return this; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); String acceptName = acceptableNode.getAcceptName(); if (acceptName == null) { acceptName = state.implicitAcceptName; } AstAcceptNode acceptNode = state.accepts.get(acceptName); if (acceptNode == null) { RegionInfo regionInfo = acceptableNode.getRegionInfo(); throw new AstRegionException("Accept not found for accepted").initRegionInfo(regionInfo); } state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } // associate accepted stream to corresponding accept acceptNode.getAcceptables().add(newAcceptableNode); return null; }
public ScriptNested(R builder) { super(new AstAcceptNode(), builder); }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { state.readState = ReadWriteState.NONE; state.writeState = ReadWriteState.NONE; AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptableNode : acceptNode.getAcceptables()) { acceptableNode.accept(this, state); } state.streams.add(newAcceptNode); return null; }