@Override public TStream<T> alias(String alias) { connector.alias(alias); return this; }
@Override public TStream<T> tag(String... values) { connector.tag(values); return this; }
@Override public String getAlias() { return connector.getAlias(); }
@Override public List<TStream<T>> split(int n, ToIntFunction<T> splitter) { if (n <= 0) throw new IllegalArgumentException("n <= 0"); Split<T> splitOp = new Split<T>(splitter); Vertex<Split<T>, T, T> splitVertex = graph().insert(splitOp, 1, n); connector.connect(splitVertex, 0); List<TStream<T>> outputs = new ArrayList<>(n); for (int i = 0; i < n; i++) { outputs.add(derived(splitVertex.getConnectors().get(i))); } return outputs; }
@Override public <N extends Oplet<C, P>, C, P> Connector<P> pipe(Connector<C> output, N oplet) { Vertex<N, C, P> pipeVertex = insert(oplet, 1, 1); output.connect(pipeVertex, 0); return pipeVertex.getConnectors().get(0); }
@Override public Set<String> getTags() { return connector.getTags(); }
protected Graph graph() { return connector.graph(); }
@Override public List<TStream<T>> split(int n, ToIntFunction<T> splitter) { if (n <= 0) throw new IllegalArgumentException("n <= 0"); Split<T> splitOp = new Split<T>(splitter); Vertex<Split<T>, T, T> splitVertex = graph().insert(splitOp, 1, n); connector.connect(splitVertex, 0); List<TStream<T>> outputs = new ArrayList<>(n); for (int i = 0; i < n; i++) { outputs.add(derived(splitVertex.getConnectors().get(i))); } return outputs; }
@Override public <N extends Oplet<C, P>, C, P> Connector<P> pipe(Connector<C> output, N oplet) { Vertex<N, C, P> pipeVertex = insert(oplet, 1, 1); output.connect(pipeVertex, 0); return pipeVertex.getConnectors().get(0); }
@Override public String getAlias() { return connector.getAlias(); }
@Override public Set<String> getTags() { return connector.getTags(); }
@Override public TStream<T> tag(String... values) { connector.tag(values); return this; }
@Override public TStream<T> alias(String alias) { connector.alias(alias); return this; }
protected Graph graph() { return connector.graph(); }
@Override public String getAlias() { return connector.getAlias(); }
@Override public Set<String> getTags() { return connector.getTags(); }
@Override public String getAlias() { return connector.getAlias(); }
@Override public Set<String> getTags() { return connector.getTags(); }