/** * Add a partition number to the distribution if it doesn't already exist. * * @param slaveServerName * @param partitionSchemaName * @param stepCopyNr * @return The found or created partition number */ public int addPartition( String slaveServerName, String partitionSchemaName, int stepCopyNr ) { Integer partitionNr = distribution.get( new SlaveStepCopy( slaveServerName, partitionSchemaName, stepCopyNr ) ); if ( partitionNr == null ) { // Not found: add it. // int nr = 0; for ( SlaveStepCopy slaveStepCopy : distribution.keySet() ) { if ( slaveStepCopy.partitionSchemaName.equals( partitionSchemaName ) ) { nr++; } } partitionNr = Integer.valueOf( nr ); addPartition( slaveServerName, partitionSchemaName, stepCopyNr, nr ); } return partitionNr.intValue(); }
public SlaveStepCopyPartitionDistribution( Node node ) { this(); int nrEntries = XMLHandler.countNodes( node, "entry" ); for ( int i = 0; i < nrEntries; i++ ) { Node entryNode = XMLHandler.getSubNodeByNr( node, "entry", i ); String slaveServerName = XMLHandler.getTagValue( entryNode, "slavename" ); String partitionSchemaName = XMLHandler.getTagValue( entryNode, "partition_schema_name" ); int stepCopyNr = Const.toInt( XMLHandler.getTagValue( entryNode, "stepcopy" ), -1 ); int partitionNr = Const.toInt( XMLHandler.getTagValue( entryNode, "partition" ), -1 ); addPartition( slaveServerName, partitionSchemaName, stepCopyNr, partitionNr ); } Node originalPartitionSchemasNode = XMLHandler.getSubNode( node, "original-partition-schemas" ); if ( originalPartitionSchemasNode != null ) { originalPartitionSchemas = new ArrayList<PartitionSchema>(); int nrSchemas = XMLHandler.countNodes( originalPartitionSchemasNode, PartitionSchema.XML_TAG ); for ( int i = 0; i < nrSchemas; i++ ) { Node schemaNode = XMLHandler.getSubNodeByNr( originalPartitionSchemasNode, PartitionSchema.XML_TAG, i ); PartitionSchema originalPartitionSchema = new PartitionSchema( schemaNode ); originalPartitionSchemas.add( originalPartitionSchema ); } } }
slaveStepCopyPartitionDistribution.addPartition( sourceSlaveServer.getName(), previousPartitionSchema.getName(), sourceCopyNr ); slaveStepCopyPartitionDistribution.addPartition( targetSlaveServer.getName(), targetPartitionSchema.getName(), targetCopyNr ); slaveStepCopyPartitionDistribution.addPartition( sourceSlaveServer.getName(), targetPartitionSchema.getName(), targetCopyNr );