/** * Get the subject of a field with the specified ID * * @param id * @return the subject or null if no field could be find with the specified id */ public Object getSubject(String id) { LogTableField field = findField(id); if (field == null) { return null; } return field.getSubject(); }
/** * @return the field that represents the name of the object that is being used (or null if none is * found) */ public LogTableField getNameField() { for (LogTableField field : fields) { if (field.isNameField()) { return field; } } return null; }
/** @return the field that represents the number of errors (or null if none is found) */ public LogTableField getErrorsField() { for (LogTableField field : fields) { if (field.isErrorsField()) { return field; } } return null; }
/** @return the field that represents the status (or null if none is found) */ public LogTableField getStatusField() { for (LogTableField field : fields) { if (field.isStatusField()) { return field; } } return null; }
public boolean containsKeyField() { for (LogTableField field : fields) { if (field.isKey()) { return true; } } return false; }
/** * 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; }
/** * Return the subject in the form of a string for the specified ID. * * @param id the id of the field to look for. * @return the string of the subject (name of step) or null if nothing was found. */ public String getSubjectString(String id) { LogTableField field = findField(id); if (field == null) { return null; } if (field.getSubject() == null) { return null; } return field.getSubject().toString(); }
public void loadFieldsXML(Node node) { int nr = XMLHandler.countNodes(node, BaseLogTable.XML_TAG); for (int i = 0; i < nr; i++) { Node fieldNode = XMLHandler.getSubNodeByNr(node, BaseLogTable.XML_TAG, i); String id = XMLHandler.getTagValue(fieldNode, "id"); LogTableField field = findField(id); if (field == null && i < fields.size()) { field = fields.get(i); // backward compatible until we go GA } if (field != null) { field.setFieldName(XMLHandler.getTagValue(fieldNode, "name")); field.setEnabled("Y".equalsIgnoreCase(XMLHandler.getTagValue(fieldNode, "enabled"))); } } }
public void replaceMeta(BaseLogTable baseLogTable) { this.space = baseLogTable.space; this.databasesInterface = baseLogTable.databasesInterface; this.connectionName = baseLogTable.connectionName; this.schemaName = baseLogTable.schemaName; this.tableName = baseLogTable.tableName; this.timeoutInDays = baseLogTable.timeoutInDays; fields.clear(); for (LogTableField field : baseLogTable.fields) { try { fields.add((LogTableField) field.clone()); } catch (CloneNotSupportedException e) { throw new RuntimeException("Clone problem with the base log table", e); } } }
/** * 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()); } } }
public void loadFromRepository(RepositoryAttributeInterface attributeInterface) throws KettleException { String connectionNameFromRepository = attributeInterface.getAttributeString(getLogTableCode() + PROP_LOG_TABLE_CONNECTION_NAME); if (connectionNameFromRepository != null) { connectionName = connectionNameFromRepository; } String schemaNameFromRepository = attributeInterface.getAttributeString(getLogTableCode() + PROP_LOG_TABLE_SCHEMA_NAME); if (schemaNameFromRepository != null) { schemaName = schemaNameFromRepository; } String tableNameFromRepository = attributeInterface.getAttributeString(getLogTableCode() + PROP_LOG_TABLE_TABLE_NAME); if (tableNameFromRepository != null) { tableName = tableNameFromRepository; } timeoutInDays = attributeInterface.getAttributeString(getLogTableCode() + PROP_LOG_TABLE_TIMEOUT_DAYS); for (int i = 0; i < getFields().size(); i++) { String id = attributeInterface.getAttributeString(getLogTableCode() + PROP_LOG_TABLE_FIELD_ID + i); // Only read further if the ID is available. // For backward compatibility, this might not be provided yet! // if (id != null) { LogTableField field = findField(id); if (field != null) { field.setFieldName( attributeInterface.getAttributeString( getLogTableCode() + PROP_LOG_TABLE_FIELD_NAME + i)); field.setEnabled( attributeInterface.getAttributeBoolean( getLogTableCode() + PROP_LOG_TABLE_FIELD_ENABLED + i)); if (field.isSubjectAllowed()) { field.setSubject( attributeInterface.getAttributeString( getLogTableCode() + PROP_LOG_TABLE_FIELD_SUBJECT + i)); } } } } }
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(); }