private void processFields ( Map < FieldType , String > map , Row row , FieldContainer container ) { for ( Map . Entry < FieldType , String > entry : map . entrySet ( ) ) { FieldType field = entry . getKey ( ) ; String name = entry . getValue ( ) ; Object value ; switch ( field . getDataType ( ) ) { case INTEGER : { value = row . getInteger ( name ) ; break ; } case BOOLEAN : { value = Boolean . valueOf ( row . getBoolean ( name ) ) ; break ; } case DATE : { value = row . getDate ( name ) ; break ; } case CURRENCY : case NUMERIC : case PERCENTAGE : { value = row . getDouble ( name ) ; break ; } case DELAY : case WORK : case DURATION : { value = row . getDuration ( name ) ; break ; } case RESOURCE_TYPE : { value = RESOURCE_TYPE_MAP . get ( row . getString ( name ) ) ; break ; } case TASK_TYPE : { value = TASK_TYPE_MAP . get ( row . getString ( name ) ) ; break ; } case CONSTRAINT : { value = CONSTRAINT_TYPE_MAP . get ( row . getString ( name ) ) ; break ; } case PRIORITY : { value = PRIORITY_MAP . get ( row . getString ( name ) ) ; break ; } case GUID : { value = row . getUUID ( name ) ; break ; } default : { value = row . getString ( name ) ; break ; } } container . set ( field , value ) ; } }
Generic method to extract Primavera fields and assign to MPXJ fields .