コード例 #1
0
  public void getFields(
      RowMetaInterface r,
      String name,
      RowMetaInterface info[],
      StepMeta nextStep,
      VariableSpace space,
      Repository repository,
      IMetaStore metaStore)
      throws KettleStepException {
    int i;
    for (i = 0; i < inputFields.length; i++) {
      RssInputField field = inputFields[i];

      int type = field.getType();
      if (type == ValueMeta.TYPE_NONE) type = ValueMeta.TYPE_STRING;
      try {
        ValueMetaInterface v =
            ValueMetaFactory.createValueMeta(space.environmentSubstitute(field.getName()), type);
        v.setLength(field.getLength(), field.getPrecision());
        v.setOrigin(name);
        r.addValueMeta(v);
      } catch (Exception e) {
        throw new KettleStepException(e);
      }
    }

    if (includeUrl) {
      ValueMetaInterface v =
          new ValueMeta(space.environmentSubstitute(urlField), ValueMeta.TYPE_STRING);
      v.setLength(100, -1);
      v.setOrigin(name);
      r.addValueMeta(v);
    }

    if (includeRowNumber) {
      ValueMetaInterface v =
          new ValueMeta(space.environmentSubstitute(rowNumberField), ValueMeta.TYPE_INTEGER);
      v.setLength(ValueMetaInterface.DEFAULT_INTEGER_LENGTH, 0);
      v.setOrigin(name);
      r.addValueMeta(v);
    }
  }
コード例 #2
0
  public String getXML() {
    StringBuffer retval = new StringBuffer();

    retval.append("    " + XMLHandler.addTagValue("url_in_field", urlInField));
    retval.append("    " + XMLHandler.addTagValue("url_field_name", urlFieldname));
    retval.append("    " + XMLHandler.addTagValue("rownum", includeRowNumber));
    retval.append("    " + XMLHandler.addTagValue("rownum_field", rowNumberField));
    retval.append("    " + XMLHandler.addTagValue("include_url", includeUrl));
    retval.append("    " + XMLHandler.addTagValue("url_Field", urlField));
    retval.append("    " + XMLHandler.addTagValue("read_from", readfrom));
    retval.append("    <urls>" + Const.CR);
    for (int i = 0; i < url.length; i++) {
      retval.append("      " + XMLHandler.addTagValue("url", url[i]));
    }
    retval.append("    </urls>" + Const.CR);
    retval.append("    <fields>" + Const.CR);
    for (int i = 0; i < inputFields.length; i++) {
      RssInputField field = inputFields[i];
      retval.append(field.getXML());
    }
    retval.append("      </fields>" + Const.CR);
    retval.append("    " + XMLHandler.addTagValue("limit", rowLimit));
    return retval.toString();
  }
コード例 #3
0
  public void saveRep(
      Repository rep, IMetaStore metaStore, ObjectId id_transformation, ObjectId id_step)
      throws KettleException {
    try {
      rep.saveStepAttribute(id_transformation, id_step, "url_in_field", urlInField);
      rep.saveStepAttribute(id_transformation, id_step, "url_field_name", urlFieldname);
      rep.saveStepAttribute(id_transformation, id_step, "rownum", includeRowNumber);
      rep.saveStepAttribute(id_transformation, id_step, "rownum_field", rowNumberField);
      rep.saveStepAttribute(id_transformation, id_step, "include_url", includeUrl);
      rep.saveStepAttribute(id_transformation, id_step, "url_Field", urlField);
      rep.saveStepAttribute(id_transformation, id_step, "read_from", readfrom);
      rep.saveStepAttribute(id_transformation, id_step, "limit", rowLimit);

      for (int i = 0; i < url.length; i++) {
        rep.saveStepAttribute(id_transformation, id_step, i, "url_name", url[i]);
      }

      for (int i = 0; i < inputFields.length; i++) {
        RssInputField field = inputFields[i];

        rep.saveStepAttribute(id_transformation, id_step, i, "field_name", field.getName());
        rep.saveStepAttribute(id_transformation, id_step, i, "field_column", field.getColumnCode());
        rep.saveStepAttribute(id_transformation, id_step, i, "field_type", field.getTypeDesc());
        rep.saveStepAttribute(id_transformation, id_step, i, "field_format", field.getFormat());
        rep.saveStepAttribute(
            id_transformation, id_step, i, "field_currency", field.getCurrencySymbol());
        rep.saveStepAttribute(
            id_transformation, id_step, i, "field_decimal", field.getDecimalSymbol());
        rep.saveStepAttribute(id_transformation, id_step, i, "field_group", field.getGroupSymbol());
        rep.saveStepAttribute(id_transformation, id_step, i, "field_length", field.getLength());
        rep.saveStepAttribute(
            id_transformation, id_step, i, "field_precision", field.getPrecision());
        rep.saveStepAttribute(
            id_transformation, id_step, i, "field_trim_type", field.getTrimTypeCode());
        rep.saveStepAttribute(id_transformation, id_step, i, "field_repeat", field.isRepeated());
      }
    } catch (Exception e) {
      throw new KettleException(
          BaseMessages.getString(
              PKG, "RssInputMeta.Exception.ErrorSavingToRepository", "" + id_step),
          e);
    }
  }
コード例 #4
0
  public void readRep(
      Repository rep, IMetaStore metaStore, ObjectId id_step, List<DatabaseMeta> databases)
      throws KettleException {
    try {

      urlInField = rep.getStepAttributeBoolean(id_step, "url_in_field");
      urlFieldname = rep.getStepAttributeString(id_step, "url_field_name");
      includeRowNumber = rep.getStepAttributeBoolean(id_step, "rownum");
      rowNumberField = rep.getStepAttributeString(id_step, "rownum_field");
      includeUrl = rep.getStepAttributeBoolean(id_step, "include_url");
      urlField = rep.getStepAttributeString(id_step, "url_Field");
      readfrom = rep.getStepAttributeString(id_step, "read_from");
      rowLimit = rep.getStepAttributeInteger(id_step, "limit");

      int nrFields = rep.countNrStepAttributes(id_step, "field_name");
      int nrUrls = rep.countNrStepAttributes(id_step, "url_name");

      allocate(nrUrls, nrFields);

      for (int i = 0; i < nrUrls; i++) {
        url[i] = rep.getStepAttributeString(id_step, i, "url_name");
      }

      for (int i = 0; i < nrFields; i++) {
        RssInputField field = new RssInputField();

        field.setName(rep.getStepAttributeString(id_step, i, "field_name"));
        field.setColumn(
            RssInputField.getColumnByCode(rep.getStepAttributeString(id_step, i, "field_column")));
        field.setType(ValueMeta.getType(rep.getStepAttributeString(id_step, i, "field_type")));
        field.setFormat(rep.getStepAttributeString(id_step, i, "field_format"));
        field.setCurrencySymbol(rep.getStepAttributeString(id_step, i, "field_currency"));
        field.setDecimalSymbol(rep.getStepAttributeString(id_step, i, "field_decimal"));
        field.setGroupSymbol(rep.getStepAttributeString(id_step, i, "field_group"));
        field.setLength((int) rep.getStepAttributeInteger(id_step, i, "field_length"));
        field.setPrecision((int) rep.getStepAttributeInteger(id_step, i, "field_precision"));
        field.setTrimType(
            RssInputField.getTrimTypeByCode(
                rep.getStepAttributeString(id_step, i, "field_trim_type")));
        field.setRepeated(rep.getStepAttributeBoolean(id_step, i, "field_repeat"));

        inputFields[i] = field;
      }
    } catch (Exception e) {
      throw new KettleException(
          BaseMessages.getString(PKG, "RssInputMeta.Exception.ErrorReadingRepository"), e);
    }
  }