@Override public String getXML() { StringBuilder retval = new StringBuilder( 300 ); retval.append( " <fields>" ).append( Const.CR ); for ( int i = 0; i < fieldDefinitions.length; i++ ) { String fieldName = fieldDefinitions[i].getFieldName(); if ( fieldName != null && fieldName.length() != 0 ) { retval.append( " <field>" ).append( Const.CR ); retval.append( " " ).append( XMLHandler.addTagValue( "name", fieldName ) ); retval.append( " " ).append( XMLHandler.addTagValue( "variable", fieldDefinitions[i].getVariableString() ) ); retval.append( " " ).append( XMLHandler.addTagValue( "type", ValueMetaFactory.getValueMetaName( fieldDefinitions[i].getFieldType() ) ) ); retval.append( " " ).append( XMLHandler.addTagValue( "format", fieldDefinitions[i].getFieldFormat() ) ); retval.append( " " ).append( XMLHandler.addTagValue( "currency", fieldDefinitions[i].getCurrency() ) ); retval.append( " " ).append( XMLHandler.addTagValue( "decimal", fieldDefinitions[i].getDecimal() ) ); retval.append( " " ).append( XMLHandler.addTagValue( "group", fieldDefinitions[i].getGroup() ) ); retval.append( " " ).append( XMLHandler.addTagValue( "length", fieldDefinitions[i].getFieldLength() ) ); retval.append( " " ).append( XMLHandler.addTagValue( "precision", fieldDefinitions[i] .getFieldPrecision() ) ); retval.append( " " ).append( XMLHandler.addTagValue( "trim_type", ValueMetaString.getTrimTypeCode( fieldDefinitions[i].getTrimType() ) ) ); retval.append( " </field>" ).append( Const.CR ); } } retval.append( " </fields>" ).append( Const.CR ); return retval.toString(); }
ValueMetaInterface v; try { v = ValueMetaFactory.createValueMeta( fieldDefinitions[i].getFieldName(), fieldDefinitions[i].getFieldType() ); } catch ( KettlePluginException e ) { throw new KettleStepException( e );
@Override public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step ) throws KettleException { try { for ( int i = 0; i < fieldDefinitions.length; i++ ) { String fieldName = fieldDefinitions[i].getFieldName(); if ( fieldName != null && fieldName.length() != 0 ) { rep.saveStepAttribute( id_transformation, id_step, i, "field_name", fieldName ); rep.saveStepAttribute( id_transformation, id_step, i, "field_variable", fieldDefinitions[i] .getVariableString() ); rep.saveStepAttribute( id_transformation, id_step, i, "field_type", ValueMetaFactory.getValueMetaName( fieldDefinitions[i].getFieldType() ) ); rep.saveStepAttribute( id_transformation, id_step, i, "field_format", fieldDefinitions[i].getFieldFormat() ); rep.saveStepAttribute( id_transformation, id_step, i, "field_currency", fieldDefinitions[i].getCurrency() ); rep.saveStepAttribute( id_transformation, id_step, i, "field_decimal", fieldDefinitions[i].getDecimal() ); rep.saveStepAttribute( id_transformation, id_step, i, "field_group", fieldDefinitions[i].getGroup() ); rep.saveStepAttribute( id_transformation, id_step, i, "field_length", fieldDefinitions[i].getFieldLength() ); rep.saveStepAttribute( id_transformation, id_step, i, "field_precision", fieldDefinitions[i] .getFieldPrecision() ); rep.saveStepAttribute( id_transformation, id_step, i, "field_trim_type", ValueMetaString.getTrimTypeCode( fieldDefinitions[i].getTrimType() ) ); } } } catch ( Exception e ) { throw new KettleException( "Unable to save step information to the repository for id_step=" + id_step, e ); } }
@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 ); } }
/** * Copy information from the meta-data input to the dialog fields. */ public void getData() { wStepname.setText( stepname ); for ( int i = 0; i < input.getFieldDefinitions().length; i++ ) { TableItem item = wFields.table.getItem( i ); int index = 1; FieldDefinition currentField = input.getFieldDefinitions()[i]; item.setText( index++, Const.NVL( currentField.getFieldName(), "" ) ); item.setText( index++, Const.NVL( currentField.getVariableString(), "" ) ); item.setText( index++, ValueMetaFactory.getValueMetaName( currentField.getFieldType() ) ); item.setText( index++, Const.NVL( currentField.getFieldFormat(), "" ) ); item.setText( index++, currentField.getFieldLength() < 0 ? "" : ( "" + currentField.getFieldLength() ) ); item.setText( index++, currentField.getFieldPrecision() < 0 ? "" : ( "" + currentField.getFieldPrecision() ) ); item.setText( index++, Const.NVL( currentField.getCurrency(), "" ) ); item.setText( index++, Const.NVL( currentField.getDecimal(), "" ) ); item.setText( index++, Const.NVL( currentField.getGroup(), "" ) ); item.setText( index++, ValueMetaString.getTrimTypeDesc( currentField.getTrimType() ) ); } wFields.setRowNums(); wFields.optWidth( true ); wStepname.selectAll(); wStepname.setFocus(); }
public int get() { return meta.getFieldDefinitions()[0].getFieldType(); } } );