final void set( int i, Comparable comparable ) { fields[ i ] = comparable; if( isOrdered() && comparable instanceof Integer ) isOrdered = i == (Integer) comparable; }
@Override public String toString() { String string; if( isOrdered() ) string = orderedToString(); else string = unorderedToString(); if( types != null ) string += " | " + Util.join( Util.simpleTypeNames( types ), ", " ); return string; }
/** * Method asDeclaration returns a new Fields instance for use as a declarator based on the given fields value. * <p> * Typically this is used to convert a selector to a declarator. Simply, all numeric position fields are replaced * by their absolute position. * <p> * Comparators are preserved in the result. * * @param fields of type Fields * @return Fields */ public static Fields asDeclaration( Fields fields ) { if( fields == null ) return null; if( fields.isNone() ) return fields; if( !fields.isDefined() ) return UNKNOWN; if( fields.isOrdered() ) return fields; Fields result = size( fields.size() ); copy( null, result, fields, 0 ); result.types = copyTypes( fields.types, result.size() ); result.comparators = fields.comparators; return result; }
@Test public void testRename3() { Fields fields = new Fields( "a", "b", "c", "d" ); Fields from = new Fields( "a", "b" ); Fields to = new Fields( 0, 1 ); Fields renamed = fields.rename( from, to ); assertTrue( "not isOrdered", renamed.isOrdered() ); assertEquals( "not equal: ", 4, renamed.size() ); assertEquals( "not equal: ", 0, renamed.get( 0 ) ); assertEquals( "not equal: ", 1, renamed.get( 1 ) ); assertEquals( "not equal: ", "c", renamed.get( 2 ) ); assertEquals( "not equal: ", "d", renamed.get( 3 ) ); }
@Test public void testRename4() { Fields fields = new Fields( "a", "b", "c", "d" ); Fields from = new Fields( "a", "b" ); Fields to = new Fields( 3, 4 ); Fields renamed = fields.rename( from, to ); assertTrue( "isOrdered", !renamed.isOrdered() ); assertEquals( "not equal: ", 4, renamed.size() ); assertEquals( "not equal: ", 3, renamed.get( 0 ) ); assertEquals( "not equal: ", 4, renamed.get( 1 ) ); assertEquals( "not equal: ", "c", renamed.get( 2 ) ); assertEquals( "not equal: ", "d", renamed.get( 3 ) ); }
if( !isOrdered() ) throw new TupleException( "this fields instance can only be used as a selector" );