@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 <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); }
0, 1); Connector<Double> out0 = v0.getConnectors().get(0); out0.tag("dots", "hashes", "ats"); out0.connect(v1, 0); v1.getConnectors().get(0).connect(v2, 0); v1.getConnectors().get(0).tag("dots"); v1.getConnectors().get(1).connect(v3, 0); v1.getConnectors().get(1).tag("hashes"); v1.getConnectors().get(2).connect(v4, 0); v1.getConnectors().get(2).tag("ats");
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void peekAll(Supplier<? extends Peek<?>> supplier, Predicate<Vertex<?, ?, ?>> select) { // Select vertices which satisfy the specified predicate List<Vertex<?, ?, ?>> vertices = new ArrayList<>(); for (Vertex<?, ?, ?> v : getVertices()) { if (select.test(v)) { vertices.add(v); } } // Insert peek oplets on isConnected() output ports for (Vertex<?, ?, ?> v : vertices) { List<? extends Connector<?>> connectors = v.getConnectors(); for (Connector<?> c : connectors) { if (c.isConnected()) { Peek<?> oplet = supplier.get(); c.peek((Peek) oplet); } } } } }
@Override public TStream<T> peek(Consumer<T> peeker) { peeker = Functions.synchronizedConsumer(peeker); connector.peek(new Peek<T>(peeker)); return this; }
@Override public TStream<T> alias(String alias) { connector.alias(alias); return this; }
protected Graph graph() { return connector.graph(); }
@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); }
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void peekAll(Supplier<? extends Peek<?>> supplier, Predicate<Vertex<?, ?, ?>> select) { // Select vertices which satisfy the specified predicate List<Vertex<?, ?, ?>> vertices = new ArrayList<>(); for (Vertex<?, ?, ?> v : getVertices()) { if (select.test(v)) { vertices.add(v); } } // Insert peek oplets on isConnected() output ports for (Vertex<?, ?, ?> v : vertices) { List<? extends Connector<?>> connectors = v.getConnectors(); for (Connector<?> c : connectors) { if (c.isConnected()) { Peek<?> oplet = supplier.get(); c.peek((Peek) oplet); } } } } }
@Override public TStream<T> peek(Consumer<T> peeker) { peeker = Functions.synchronizedConsumer(peeker); connector.peek(new Peek<T>(peeker)); return this; }
@Override public TStream<T> alias(String alias) { connector.alias(alias); return this; }
protected Graph graph() { return connector.graph(); }
@Override public <U> TStream<U> fanin(FanIn<T,U> fanin, List<TStream<T>> others) { if (others.isEmpty() || others.size() == 1 && others.contains(this)) throw new IllegalArgumentException("others"); // use pipe() if (new HashSet<>(others).size() != others.size()) throw new IllegalArgumentException("others has dups"); for (TStream<T> other : others) verify(other); others = new ArrayList<>(others); others.add(0, this); Vertex<Oplet<T,U>, T, U> fanInVertex = graph().insert(fanin, others.size(), 1); int inputPort = 0; for (TStream<T> other : others) { @SuppressWarnings("unchecked") ConnectorStream<G,T> cs = (ConnectorStream<G, T>) other; cs.connector.connect(fanInVertex, inputPort++); } return derived(fanInVertex.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 <U> TStream<U> fanin(FanIn<T,U> fanin, List<TStream<T>> others) { if (others.isEmpty() || others.size() == 1 && others.contains(this)) throw new IllegalArgumentException("others"); // use pipe() if (new HashSet<>(others).size() != others.size()) throw new IllegalArgumentException("others has dups"); for (TStream<T> other : others) verify(other); others = new ArrayList<>(others); others.add(0, this); Vertex<Oplet<T,U>, T, U> fanInVertex = graph().insert(fanin, others.size(), 1); int inputPort = 0; for (TStream<T> other : others) { @SuppressWarnings("unchecked") ConnectorStream<G,T> cs = (ConnectorStream<G, T>) other; cs.connector.connect(fanInVertex, inputPort++); } return derived(fanInVertex.getConnectors().get(0)); }
@Override public String getAlias() { return connector.getAlias(); }