@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } return null; }
@Override public AstAcceptableNode visitStreamableNode(StreamableNodeContext ctx) { AstStreamableNodeVisitor visitor = new AstStreamableNodeVisitor(factory, environment); AstStreamableNode streamableNode = visitor.visitStreamableNode(ctx); if (streamableNode != null) { node.getStreamables().add(streamableNode); childInfos().add(streamableNode.getRegionInfo()); } return node; }
@Override public Configuration visit(AstAcceptableNode acceptedNode, State state) { // masking is a no-op by default for each stream state.readUnmasker = Masker.IDENTITY_MASKER; state.writeMasker = Masker.IDENTITY_MASKER; state.pipelineAsMap = new LinkedHashMap<>(); for (AstStreamableNode streamable : acceptedNode.getStreamables()) { streamable.accept(this, state); } Map<String, ChannelHandler> pipelineAsMap = state.pipelineAsMap; String handlerName = String.format("completion#%d", pipelineAsMap.size() + 1); CompletionHandler handler = new CompletionHandler(); handler.setRegionInfo(acceptedNode.getRegionInfo()); pipelineAsMap.put(handlerName, handler); return state.configuration; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { state.connectivityState = ConnectivityState.NONE; AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); newAcceptableNode.setAcceptName(acceptableNode.getAcceptName()); state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newAcceptableNode); return null; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { state.readWriteState = ReadWriteState.NONE; AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); newAcceptableNode.setAcceptName(acceptableNode.getAcceptName()); state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newAcceptableNode); return null; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { state.readState = ReadWriteState.NONE; state.writeState = ReadWriteState.NONE; AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); newAcceptableNode.setAcceptName(acceptableNode.getAcceptName()); state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newAcceptableNode); return null; }
@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; }