@Before public void setUpLoadSave() throws Exception { List<String> attributes = Arrays.asList( "fieldDefinitions" ); Map<String, String> getterMap = new HashMap<String, String>(); getterMap.put( "fieldDefinitions", "getFieldDefinitions" ); Map<String, String> setterMap = new HashMap<String, String>(); setterMap.put( "fieldDefinitions", "setFieldDefinitions" ); FieldDefinition fieldDefinition = new FieldDefinition(); fieldDefinition.setFieldName( "fieldName" ); fieldDefinition.setFieldLength( 4 ); fieldDefinition.setCurrency( null ); fieldDefinition.setFieldPrecision( 5 ); fieldDefinition.setFieldType( ValueMetaInterface.TYPE_NUMBER ); fieldDefinition.setGroup( "group" ); fieldDefinition.setVariableString( "variableString" ); FieldLoadSaveValidator<FieldDefinition[]> fieldDefinitionLoadSaveValidator = new ArrayLoadSaveValidator<FieldDefinition>( new FieldDefinitionLoadSaveValidator( fieldDefinition ), 5 ); Map<String, FieldLoadSaveValidator<?>> attrValidatorMap = new HashMap<String, FieldLoadSaveValidator<?>>(); attrValidatorMap.put( "fieldName", fieldDefinitionLoadSaveValidator ); Map<String, FieldLoadSaveValidator<?>> typeValidatorMap = new HashMap<String, FieldLoadSaveValidator<?>>(); typeValidatorMap.put( FieldDefinition[].class.getCanonicalName(), fieldDefinitionLoadSaveValidator ); loadSaveTester = new LoadSaveTester<>( testMetaClass, attributes, Collections.emptyList(), Collections.emptyList(), getterMap, setterMap, attrValidatorMap, typeValidatorMap, this ); }
private void getInfo( GetVariableMeta input ) throws KettleException { stepname = wStepname.getText(); // return value // Table table = wFields.table; int count = wFields.nrNonEmpty(); input.allocate( count ); //CHECKSTYLE:Indentation:OFF for ( int i = 0; i < count; i++ ) { TableItem item = wFields.getNonEmpty( i ); FieldDefinition currentField = input.getFieldDefinitions()[i]; int index = 1; currentField.setFieldName( item.getText( index++ ) ); currentField.setVariableString( item.getText( index++ ) ); currentField.setFieldType( ValueMetaFactory.getIdForValueMeta( item.getText( index++ ) ) ); currentField.setFieldFormat( item.getText( index++ ) ); currentField.setFieldLength( Const.toInt( item.getText( index++ ), -1 ) ); currentField.setFieldPrecision( Const.toInt( item.getText( index++ ), -1 ) ); currentField.setCurrency( item.getText( index++ ) ); currentField.setDecimal( item.getText( index++ ) ); currentField.setGroup( item.getText( index++ ) ); currentField.setTrimType( ValueMetaString.getTrimTypeByDesc( item.getText( index++ ) ) ); } }
@Override public void readRep( Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases ) throws KettleException { try { int nrfields = rep.countNrStepAttributes( id_step, "field_name" ); allocate( nrfields ); for ( int i = 0; i < nrfields; i++ ) { fieldDefinitions[i].setFieldName( rep.getStepAttributeString( id_step, i, "field_name" ) ); fieldDefinitions[i].setVariableString( rep.getStepAttributeString( id_step, i, "field_variable" ) ); fieldDefinitions[i].setFieldType( ValueMetaFactory.getIdForValueMeta( rep.getStepAttributeString( id_step, i, "field_type" ) ) ); fieldDefinitions[i].setFieldFormat( rep.getStepAttributeString( id_step, i, "field_format" ) ); fieldDefinitions[i].setCurrency( rep.getStepAttributeString( id_step, i, "field_currency" ) ); fieldDefinitions[i].setDecimal( rep.getStepAttributeString( id_step, i, "field_decimal" ) ); fieldDefinitions[i].setGroup( rep.getStepAttributeString( id_step, i, "field_group" ) ); fieldDefinitions[i].setFieldLength( (int) rep.getStepAttributeInteger( id_step, i, "field_length" ) ); fieldDefinitions[i].setFieldPrecision( (int) rep.getStepAttributeInteger( id_step, i, "field_precision" ) ); fieldDefinitions[i].setTrimType( ValueMetaString.getTrimTypeByCode( rep.getStepAttributeString( id_step, i, "field_trim_type" ) ) ); // Backward compatibility // int fieldType = fieldDefinitions[i].getFieldType(); if ( fieldType == ValueMetaInterface.TYPE_NONE ) { fieldDefinitions[i].setFieldType( ValueMetaInterface.TYPE_STRING ); } } } catch ( Exception e ) { throw new KettleException( "Unexpected error reading step information from the repository", e ); } }
private void readData( Node stepnode ) throws KettleXMLException { try { Node fields = XMLHandler.getSubNode( stepnode, "fields" ); int count = XMLHandler.countNodes( fields, "field" ); allocate( count ); for ( int i = 0; i < count; i++ ) { Node fnode = XMLHandler.getSubNodeByNr( fields, "field", i ); fieldDefinitions[i].setFieldName( XMLHandler.getTagValue( fnode, "name" ) ); fieldDefinitions[i].setVariableString( XMLHandler.getTagValue( fnode, "variable" ) ); fieldDefinitions[i].setFieldType( ValueMetaFactory.getIdForValueMeta( XMLHandler.getTagValue( fnode, "type" ) ) ); fieldDefinitions[i].setFieldFormat( XMLHandler.getTagValue( fnode, "format" ) ); fieldDefinitions[i].setCurrency( XMLHandler.getTagValue( fnode, "currency" ) ); fieldDefinitions[i].setDecimal( XMLHandler.getTagValue( fnode, "decimal" ) ); fieldDefinitions[i].setGroup( XMLHandler.getTagValue( fnode, "group" ) ); fieldDefinitions[i].setFieldLength( Const.toInt( XMLHandler.getTagValue( fnode, "length" ), -1 ) ); fieldDefinitions[i].setFieldPrecision( Const.toInt( XMLHandler.getTagValue( fnode, "precision" ), -1 ) ); fieldDefinitions[i].setTrimType( ValueMetaString.getTrimTypeByCode( XMLHandler.getTagValue( fnode, "trim_type" ) ) ); // Backward compatibility // if ( fieldDefinitions[i].getFieldType() == ValueMetaInterface.TYPE_NONE ) { fieldDefinitions[i].setFieldType( ValueMetaInterface.TYPE_STRING ); } } } catch ( Exception e ) { throw new KettleXMLException( "Unable to read step information from XML", e ); } }