public void putNext ( Tuple t ) throws IOException { /* We support two cases for output: First, the original output: (key, (name, value), (name,value), {(name,value)}) (tuples or bag is optional) For supers, we only accept the original output. */ if ( t . size ( ) < 1 ) { // simply nothing here, we can't even delete without a key logger . warn ( "Empty output skipped, filter empty tuples to suppress this warning" ) ; return ; } ByteBuffer key = objToBB ( t . get ( 0 ) ) ; if ( t . getType ( 1 ) == DataType . TUPLE ) writeColumnsFromTuple ( key , t , 1 ) ; else if ( t . getType ( 1 ) == DataType . BAG ) { if ( t . size ( ) > 2 ) throw new IOException ( "No arguments allowed after bag" ) ; writeColumnsFromBag ( key , ( DataBag ) t . get ( 1 ) ) ; } else throw new IOException ( "Second argument in output must be a tuple or bag" ) ; }
write next row