/** * Method remove removes the values specified by the given selector. The declarator declares the fields in this instance. * * @param declarator of type Fields * @param selector of type Fields * @return Tuple */ public Tuple remove( Fields declarator, Fields selector ) { return remove( getPos( declarator, selector ) ); }
/** * Method is the inverse of {@link #remove(int[])}. * * @param pos of type int[] * @return Tuple */ public Tuple leave( int[] pos ) { verifyModifiable(); Tuple results = remove( pos ); List<Object> temp = results.elements; results.elements = this.elements; this.elements = temp; return results; }
/** * Returns the result as a {@link Tuple} list. */ public List<Tuple> asTupleList() { List<Tuple> sorted = new ArrayList<Tuple>(tuples); if (sortFields != null && sortFields.size() > 0) { Collections.sort(sorted, new TupleComparator(declaredFields, sortFields)); } Fields selectedFields = selectedFields(); List<Tuple> selected = new ArrayList<Tuple>(sorted.size()); for (Tuple tuple : sorted) { Tuple filtered = new Tuple(tuple).remove(declaredFields, selectedFields); selected.add(filtered); } return Collections.unmodifiableList(selected); }
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 ); } }
@Test public void testRemove() { Tuple aTuple = tuple.remove( new int[]{0} ); assertEquals( "not equal: aTuple.size()", 1, aTuple.size() ); assertEquals( "not equal: aTuple.get( 0 )", "a", aTuple.getObject( 0 ) ); assertEquals( "not equal: tuple.size()", 4, tuple.size() ); assertEquals( "not equal: tuple.get( 0 )", "b", tuple.getObject( 0 ) ); assertEquals( "not equal: tuple.get( 1 )", "c", tuple.getObject( 1 ) ); }
@Test public void testRemove2() { Tuple aTuple = tuple.remove( new int[]{2, 4} ); assertEquals( "not equal: aTuple.size()", 2, aTuple.size() ); assertEquals( "not equal: aTuple.get( 0 )", "c", aTuple.getObject( 0 ) ); assertEquals( "not equal: tuple.size()", 3, tuple.size() ); assertEquals( "not equal: tuple.get( 0 )", "a", tuple.getObject( 0 ) ); assertEquals( "not equal: tuple.get( 1 )", "b", tuple.getObject( 1 ) ); assertEquals( "not equal: tuple.get( 1 )", "d", tuple.getObject( 2 ) ); }
@Test public void testRemove() { Fields aFields = new Fields( "one" ); Tuple aTuple = tuple.remove( fields, aFields ); assertEquals( "not equal: aTuple.size()", 1, aTuple.size() ); assertEquals( "not equal: aTuple.get( 0 )", "a", aTuple.getObject( 0 ) ); fields = fields.subtract( aFields ); assertEquals( "not equal: tuple.size()", 4, tuple.size() ); assertEquals( "not equal: tuple.get( 0 )", "b", tuple.get( fields, new Fields( "two" ) ).getObject( 0 ) ); assertEquals( "not equal: tuple.get( 1 )", "c", tuple.get( fields, new Fields( "three" ) ).getObject( 0 ) ); }
@Test public void testEqual() { Tuple aTuple = new Tuple( tuple ); assertEquals( "not equal: tuple", aTuple, tuple ); aTuple.remove( new int[]{0} ); assertNotSame( "equal: tuple", aTuple, tuple ); aTuple = new Tuple( tuple, "a" ); Tuple bTuple = new Tuple( tuple, "a" ); assertEquals( "not equal: tuple", aTuple, bTuple ); aTuple = new Tuple( "a", new Tuple( tuple ), "a" ); // test new instances bTuple = new Tuple( "a", new Tuple( tuple ), "a" ); assertEquals( "not equal: tuple", aTuple, bTuple ); assertEquals( "not equal: hash code", aTuple.hashCode(), bTuple.hashCode() ); }