Skip to content

Commit

Permalink
[PDI-15032] - Metadata Injection on all tabs of select values step is…
Browse files Browse the repository at this point in the history
… causing error - fix getters
  • Loading branch information
AndreyBurikhin committed Mar 25, 2016
1 parent bd933bc commit 0a9ecf0
Showing 1 changed file with 28 additions and 50 deletions.
Expand Up @@ -70,6 +70,8 @@
public class SelectValuesMeta extends BaseStepMeta implements StepMetaInterface {
private static Class<?> PKG = SelectValuesMeta.class; // for i18n purposes, needed by Translator2!!

public static final int UNDEFINED = -2;

// SELECT mode
@InjectionDeep
private SelectField[] selectFields = {};
Expand Down Expand Up @@ -120,15 +122,11 @@ public void setSelectName( String[] selectName ) {
}

public String[] getSelectName() {
List<String> names = new ArrayList<String>();
for ( int i = 0; i < selectFields.length; i++ ) {
String value = selectFields[i].getName();
if ( value == null ) {
break;
}
names.add( value );
String[] selectName = new String[selectFields.length];
for ( int i = 0; i < selectName.length; i++ ) {
selectName[i] = selectFields[i].getName();
}
return names.toArray( new String[names.size()] );
return selectName;
}

/**
Expand All @@ -149,15 +147,11 @@ public void setSelectRename( String[] selectRename ) {
}

public String[] getSelectRename() {
List<String> renames = new ArrayList<String>();
for ( int i = 0; i < selectFields.length; i++ ) {
String value = selectFields[i].getRename();
if ( value == null ) {
break;
}
renames.add( value );
String[] selectRename = new String[selectFields.length];
for ( int i = 0; i < selectRename.length; i++ ) {
selectRename[i] = selectFields[i].getRename();
}
return renames.toArray( new String[renames.size()] );
return selectRename;
}

/**
Expand All @@ -172,25 +166,17 @@ public void setSelectLength( int[] selectLength ) {
if ( i < selectLength.length ) {
selectFields[i].setLength( selectLength[i] );
} else {
selectFields[i].setLength( -2 );
selectFields[i].setLength( UNDEFINED );
}
}
}

public int[] getSelectLength() {
List<Integer> lengths = new ArrayList<Integer>();
for ( int i = 0; i < selectFields.length; i++ ) {
int value = selectFields[i].getLength();
if ( value == -2 ) {
break;
}
lengths.add( value );
}
int[] lengthsArray = new int[lengths.size()];
for ( int i = 0; i < lengthsArray.length; i++ ) {
lengthsArray[i] = lengths.get( i );
int[] selectLength = new int[selectFields.length];
for ( int i = 0; i < selectLength.length; i++ ) {
selectLength[i] = selectFields[i].getLength();
}
return lengthsArray;
return selectLength;
}

/**
Expand All @@ -205,34 +191,26 @@ public void setSelectPrecision( int[] selectPrecision ) {
if ( i < selectPrecision.length ) {
selectFields[i].setPrecision( selectPrecision[i] );
} else {
selectFields[i].setPrecision( -2 );
selectFields[i].setPrecision( UNDEFINED );
}
}
}

public int[] getSelectPrecision() {
List<Integer> precisions = new ArrayList<Integer>();
for ( int i = 0; i < selectFields.length; i++ ) {
int value = selectFields[i].getPrecision();
if ( value == -2 ) {
break;
}
precisions.add( value );
}
int[] precisionsArray = new int[precisions.size()];
for ( int i = 0; i < precisionsArray.length; i++ ) {
precisionsArray[i] = precisions.get( i );
int[] selectPrecision = new int[selectFields.length];
for ( int i = 0; i < selectPrecision.length; i++ ) {
selectPrecision[i] = selectFields[i].getPrecision();
}
return precisionsArray;
return selectPrecision;
}

private void resizeSelectFields( int length ) {
int fillStartIndex = selectFields.length;
selectFields = Arrays.copyOf( selectFields, length );
for ( int i = fillStartIndex; i < selectFields.length; i++ ) {
selectFields[i] = new SelectField();
selectFields[i].setLength( -2 );
selectFields[i].setPrecision( -2 );
selectFields[i].setLength( UNDEFINED );
selectFields[i].setPrecision( UNDEFINED );
}
}

Expand Down Expand Up @@ -300,8 +278,8 @@ private void readData( Node step ) throws KettleXMLException {
selectFields[i] = new SelectField();
selectFields[i].setName( XMLHandler.getTagValue( line, "name" ) );
selectFields[i].setRename( XMLHandler.getTagValue( line, "rename" ) );
selectFields[i].setLength( Const.toInt( XMLHandler.getTagValue( line, "length" ), -2 ) ); // $NON-NtagLS-1$
selectFields[i].setPrecision( Const.toInt( XMLHandler.getTagValue( line, "precision" ), -2 ) );
selectFields[i].setLength( Const.toInt( XMLHandler.getTagValue( line, "length" ), UNDEFINED ) ); // $NON-NtagLS-1$
selectFields[i].setPrecision( Const.toInt( XMLHandler.getTagValue( line, "precision" ), UNDEFINED ) );
}
selectingAndSortingUnspecifiedFields =
"Y".equalsIgnoreCase( XMLHandler.getTagValue( fields, "select_unspecified" ) );
Expand Down Expand Up @@ -350,11 +328,11 @@ public void getSelectFields( RowMetaInterface inputRowMeta, String name ) throws
v.setName( selectFields[i].getRename() );
v.setOrigin( name );
}
if ( selectFields[i].getLength() != -2 ) {
if ( selectFields[i].getLength() != UNDEFINED ) {
v.setLength( selectFields[i].getLength() );
v.setOrigin( name );
}
if ( selectFields[i].getPrecision() != -2 ) {
if ( selectFields[i].getPrecision() != UNDEFINED ) {
v.setPrecision( selectFields[i].getPrecision() );
v.setOrigin( name );
}
Expand Down Expand Up @@ -431,11 +409,11 @@ public void getMetadataFields( RowMetaInterface inputRowMeta, String name ) thro
//
v.setStorageType( ValueMetaInterface.STORAGE_TYPE_NORMAL );
}
if ( metaChange.getLength() != -2 ) {
if ( metaChange.getLength() != UNDEFINED ) {
v.setLength( metaChange.getLength() );
v.setOrigin( name );
}
if ( metaChange.getPrecision() != -2 ) {
if ( metaChange.getPrecision() != UNDEFINED ) {
v.setPrecision( metaChange.getPrecision() );
v.setOrigin( name );
}
Expand Down

0 comments on commit 0a9ecf0

Please sign in to comment.