@Override public Sink<Binding> createSerializer(OutputStream out) { return new BindingOutputStream(out); }
public final void write(Binding binding) { send(binding) ; } @Override
public static void main(String... args) { InputStream in = System.in ; OutputStream out = System.out ; BindingInputStream input = new BindingInputStream(in) ; BindingOutputStream output = new BindingOutputStream(out) ; for ( ; input.hasNext() ; ) output.send(input.next()) ; output.flush() ; } }
static void testWriteRead(PrefixMap prefixMap, Binding ... bindings) { ByteArrayOutputStream out = new ByteArrayOutputStream() ; BindingOutputStream output = new BindingOutputStream(out, prefixMap) ; for ( Binding b : bindings ) output.write(b) ; output.flush() ; // When the going gets tough, the tough put in trace statements: //System.out.println("T: \n"+out.toString()) ; ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()) ; BindingInputStream input = new BindingInputStream(in) ; List<Binding> results = new ArrayList<>() ; for ( ; input.hasNext() ; ) { results.add(input.next()) ; } assertEquals(bindings.length, results.size()) ; for ( int i = 0 ; i < bindings.length ; i++ ) { Binding b1 = bindings[i] ; Binding b2 = results.get(i) ; assertTrue("Bindings do not match: expected="+b1+" got="+b2, equalBindings(b1, b2)) ; } }
if ( needVars(vars, binding) )
public static void main(String... args) { InputStream in = System.in ; OutputStream out = System.out ; BindingInputStream input = new BindingInputStream(in) ; BindingOutputStream output = new BindingOutputStream(out) ; for ( ; input.hasNext() ; ) output.send(input.next()) ; output.flush() ; } }