/**
   * Save this core information of the log table to the repository using the specified attribute
   * interface.
   *
   * @param attributeInterface The attribute interface to use to set attributes
   * @throws KettleException
   */
  public void saveToRepository(RepositoryAttributeInterface attributeInterface)
      throws KettleException {
    attributeInterface.setAttribute(
        getLogTableCode() + PROP_LOG_TABLE_CONNECTION_NAME, getConnectionName());
    attributeInterface.setAttribute(
        getLogTableCode() + PROP_LOG_TABLE_SCHEMA_NAME, getSchemaName());
    attributeInterface.setAttribute(getLogTableCode() + PROP_LOG_TABLE_TABLE_NAME, getTableName());
    attributeInterface.setAttribute(
        getLogTableCode() + PROP_LOG_TABLE_TIMEOUT_DAYS, getTimeoutInDays());

    // Store the fields too...
    //
    for (int i = 0; i < getFields().size(); i++) {
      LogTableField field = getFields().get(i);
      attributeInterface.setAttribute(
          getLogTableCode() + PROP_LOG_TABLE_FIELD_ID + i, field.getId());
      attributeInterface.setAttribute(
          getLogTableCode() + PROP_LOG_TABLE_FIELD_NAME + i, field.getFieldName());
      attributeInterface.setAttribute(
          getLogTableCode() + PROP_LOG_TABLE_FIELD_ENABLED + i, field.isEnabled());

      if (field.isSubjectAllowed()) {
        attributeInterface.setAttribute(
            getLogTableCode() + PROP_LOG_TABLE_FIELD_SUBJECT + i,
            field.getSubject() == null ? null : field.getSubject().toString());
      }
    }
  }
 /**
  * Find a log table field in this log table definition. Use the id of the field to do the lookup.
  *
  * @param id the id of the field to search for
  * @return the log table field or null if nothing was found.
  */
 public LogTableField findField(String id) {
   for (LogTableField field : fields) {
     if (field.getId().equals(id)) {
       return field;
     }
   }
   return null;
 }
  protected String getFieldsXML() {
    StringBuffer retval = new StringBuffer();

    for (LogTableField field : fields) {
      retval.append(XMLHandler.openTag(XML_TAG));

      retval.append(XMLHandler.addTagValue("id", field.getId(), false));
      retval.append(XMLHandler.addTagValue("enabled", field.isEnabled(), false));
      retval.append(XMLHandler.addTagValue("name", field.getFieldName(), false));
      if (field.isSubjectAllowed()) {
        retval.append(
            XMLHandler.addTagValue(
                "subject",
                field.getSubject() == null ? null : field.getSubject().toString(),
                false));
      }

      retval.append(XMLHandler.closeTag(XML_TAG));
    }

    return retval.toString();
  }