@Override public Tuple makeResult( Tuple[] tuples ) { result.clear(); // flatten the results into one Tuple for( Tuple lastValue : tuples ) result.addAll( lastValue ); return result; } };
/** * Method addAll adds all given values to this instance. * * @param values of type Object... */ public void addAll( Object... values ) { verifyModifiable(); if( values.length == 1 && values[ 0 ] instanceof Tuple ) addAll( (Tuple) values[ 0 ] ); else Collections.addAll( elements, values ); }
/** * Method append appends all the values of the given Tuple instances to a copy of this instance. * * @param tuples of type Tuple * @return Tuple */ public Tuple append( Tuple... tuples ) { Tuple result = new Tuple( this ); for( Tuple tuple : tuples ) result.addAll( tuple ); return result; }
@Override public Tuple toPartialTuple(ArrayList<Object> aggregate) { Tuple tuple = new Tuple(); for (int i = 0; i < exactAggregatorDefinitions.length; ++i) { tuple.addAll(exactAggregatorDefinitions[i].getAggregator().toPartialTuple(aggregate.get(i))); } return tuple; }
@Override public Tuple toFinalTuple(ArrayList<Object> aggregate) { Tuple tuple = new Tuple(); for (int i = 0; i < exactAggregatorDefinitions.length; ++i) { tuple.addAll(exactAggregatorDefinitions[i].getAggregator().toFinalTuple(aggregate.get(i))); } return tuple; }
/** * Method selectInto selects the fields specified in the selector from this instance and copies * them into the given tuple argument. * * @param selector of type Fields * @param tuple of type Tuple * @return returns the given tuple argument with new values added */ public Tuple selectInto( Fields selector, Tuple tuple ) { if( selector.isNone() ) return tuple; int[] pos = this.tuple.getPos( fields, selector ); if( pos == null || pos.length == 0 ) { tuple.addAll( this.tuple ); } else { for( int i : pos ) tuple.add( this.tuple.getObject( i ) ); } return tuple; }
@Override public void operate( FlowProcess flowProcess, BufferCall bufferCall ) { JoinerClosure joinerClosure = bufferCall.getJoinerClosure(); if( joinerClosure.size() != 2 ) throw new IllegalArgumentException( "joiner size wrong" ); Iterator<Tuple> lhs = joinerClosure.getIterator( 0 ); while( lhs.hasNext() ) { Tuple lhsTuple = lhs.next(); Iterator<Tuple> rhs = joinerClosure.getIterator( 1 ); while( rhs.hasNext() ) { Tuple rhsTuple = rhs.next(); Tuple result = new Tuple(); result.addAll( lhsTuple ); result.addAll( rhsTuple ); bufferCall.getOutputCollector().add( result ); } } } }
private void useSize( TupleEntry input, TupleEntryCollector outputCollector ) { LOG.debug( "using size: {}", size ); Tuple tuple = new Tuple( input.getTuple() ); // make clone Tuple group = tuple.remove( input.getFields(), groupFieldSelector ); for( int i = 0; i < tuple.size(); i = i + size ) { Tuple result = new Tuple( group ); result.addAll( tuple.get( Fields.offsetSelector( size, i ).getPos() ) ); outputCollector.add( result ); } }