public static Field createField ( RowResult result , String fieldName , Type type ) throws StageException { switch ( type ) { case INT8 : return Field . create ( Field . Type . BYTE , result . getByte ( fieldName ) ) ; case INT16 : return Field . create ( Field . Type . SHORT , result . getShort ( fieldName ) ) ; case INT32 : return Field . create ( Field . Type . INTEGER , result . getInt ( fieldName ) ) ; case INT64 : return Field . create ( Field . Type . LONG , result . getLong ( fieldName ) ) ; case BINARY : try { return Field . create ( Field . Type . BYTE_ARRAY , result . getBinary ( fieldName ) ) ; } catch ( IllegalArgumentException ex ) { throw new OnRecordErrorException ( Errors . KUDU_35 , fieldName ) ; } case STRING : return Field . create ( Field . Type . STRING , result . getString ( fieldName ) ) ; case BOOL : return Field . create ( Field . Type . BOOLEAN , result . getBoolean ( fieldName ) ) ; case FLOAT : return Field . create ( Field . Type . FLOAT , result . getFloat ( fieldName ) ) ; case DOUBLE : return Field . create ( Field . Type . DOUBLE , result . getDouble ( fieldName ) ) ; case UNIXTIME_MICROS : //UNIXTIME_MICROS is in microsecond return Field . create ( Field . Type . DATETIME , new Date ( result . getLong ( fieldName ) / 1000L ) ) ; default : if ( "DECIMAL" . equals ( type . name ( ) ) ) { return Field . create ( Field . Type . DECIMAL , result . getDecimal ( fieldName ) ) ; } throw new StageException ( Errors . KUDU_10 , fieldName , type . getName ( ) ) ; } }
Create a field and assign a value off of RowResult .