class StreamLookupMeta extends BaseTransformMeta implements ITransformMeta<StreamLookup, StreamLookupData> {

  @Override
  public String getXml() {
    StringBuilder retval = new StringBuilder();

    IStream infoStream = getTransformIOMeta().getInfoStreams().get( 0 );
    retval.append( "    " ).append( XmlHandler.addTagValue( "from", infoStream.getTransformName() ) );
    retval.append( "    " ).append( XmlHandler.addTagValue( "input_sorted", isInputSorted() ) );
    retval.append( "    " ).append( XmlHandler.addTagValue( "preserve_memory", isMemoryPreservationActive() ) );
    retval.append( "    " ).append( XmlHandler.addTagValue( "sorted_list", isUsingSortedList() ) );
    retval.append( "    " ).append( XmlHandler.addTagValue( "integer_pair", isUsingIntegerPair() ) );

    retval.append( "    <lookup>" ).append( Const.CR );
    for ( int i = 0; i < getKeystream().length; i++ ) {
      retval.append( "      <key>" ).append( Const.CR );
      retval.append( "        " ).append( XmlHandler.addTagValue( "name", getKeystream()[ i ] ) );
      retval.append( "        " ).append( XmlHandler.addTagValue( "field", getKeylookup()[ i ] ) );
      retval.append( "      </key>" ).append( Const.CR );
    }

    for ( int i = 0; i < getValue().length; i++ ) {
      retval.append( "      <value>" ).append( Const.CR );
      retval.append( "        " ).append( XmlHandler.addTagValue( "name", getValue()[ i ] ) );
      retval.append( "        " ).append( XmlHandler.addTagValue( "rename", getValueName()[ i ] ) );
      retval.append( "        " ).append( XmlHandler.addTagValue( "default", getValueDefault()[ i ] ) );
      retval.append( "        " ).append(
        XmlHandler.addTagValue( "type", ValueMetaFactory.getValueMetaName( getValueDefaultType()[ i ] ) ) );
      retval.append( "      </value>" ).append( Const.CR );
    }
    retval.append( "    </lookup>" ).append( Const.CR );

    return retval.toString();
  }

  public  StreamLookupMeta();

}