/** * Set the partitioning schema after loading from XML or repository * * @param partitionSchemas the list of partitioning schemas */ public void setPartitionSchemaAfterLoading(List<PartitionSchema> partitionSchemas) throws KettleException { partitionSchema = null; // sorry, not found! for (int i = 0; i < partitionSchemas.size() && partitionSchema == null; i++) { PartitionSchema schema = partitionSchemas.get(i); if (schema.getName().equalsIgnoreCase(partitionSchemaName)) { partitionSchema = schema; // found! } } if (methodType != PARTITIONING_METHOD_NONE && partitionSchema == null) { String message = "Unable to set partition schema for name [" + partitionSchemaName + "], method: " + getMethodDescription() + Const.CR; message += "This is the list of available partition schema:" + Const.CR; for (int i = 0; i < partitionSchemas.size() && partitionSchema == null; i++) { PartitionSchema schema = partitionSchemas.get(i); message += " --> " + schema.getName() + Const.CR; } throw new KettleException(message); } }
public StepPartitioningMeta clone() { StepPartitioningMeta stepPartitioningMeta = new StepPartitioningMeta( method, partitionSchema != null ? (PartitionSchema) partitionSchema.clone() : null); stepPartitioningMeta.partitionSchemaName = partitionSchemaName; stepPartitioningMeta.setMethodType(methodType); stepPartitioningMeta.setPartitioner(partitioner == null ? null : partitioner.clone()); return stepPartitioningMeta; }
/** * Saves partitioning properties in the repository for the given step. * * @param rep the repository to save in * @param id_transformation the ID of the transformation * @param id_step the ID of the step * @throws KettleDatabaseException In case anything goes wrong */ public void saveRep(Repository rep, long id_transformation, long id_step) throws KettleException { rep.saveStepAttribute( id_transformation, id_step, "PARTITIONING_SCHEMA", partitionSchema != null ? partitionSchema.getName() : ""); // selected schema rep.saveStepAttribute( id_transformation, id_step, "PARTITIONING_METHOD", getMethodCode()); // method of partitioning }
@Override public String toString() { String description; if (partitioner != null) { description = partitioner.getDescription(); } else { description = getMethodDescription(); } if (partitionSchema != null) { description += " / " + partitionSchema.toString(); } return description; }
public String getXML() { StringBuffer xml = new StringBuffer(150); xml.append(" <partitioning>").append(Const.CR); xml.append(" ").append(XMLHandler.addTagValue("method", getMethodCode())); xml.append(" ") .append( XMLHandler.addTagValue( "schema_name", partitionSchema != null ? partitionSchema.getName() : "")); if (partitioner != null) { xml.append(partitioner.getXML()); } xml.append(" </partitioning>").append(Const.CR); return xml.toString(); }