org.cip4.jdflib.util
Class JDFSpawn

java.lang.Object
  extended by org.cip4.jdflib.util.JDFSpawn

public class JDFSpawn
extends Object

Author:
Rainer Prosi This class is used when spawning a JDF node it summarizes all spawning routines the had been part of JDF Node

Field Summary
 boolean bCopyComments
          if true, copy comments
 boolean bCopyCustomerInfo
          if true, copy customer info
 boolean bCopyNodeInfo
          if true, copy node info
 boolean bFixResources
          if true, ensure sufficient partitioning of rw resources, else do not add missing partitions
 boolean bSpawnIdentical
          if true, copy node info
 boolean bSpawnROPartsOnly
          if true, reduce read only partitions, else retain entire resource
 boolean bSpawnRWPartsMultiple
          if true, allow multiple rw spawning of resources note that this feature causes race conditions when merging
static int exAlreadyMerged
          exception id for multiple merge attempt
static int exMultiSpawnRW
          exception id for multiple rw spawns
 String parentURL
           
 String spawnURL
           
 VString vRWResources_in
          list of all resources to copy rw
 VJDFAttributeMap vSpawnParts
          list of partitions to spawn
 
Constructor Summary
JDFSpawn(JDFNode nodeToSpawn)
           
 
Method Summary
protected  void calcAuditSpawnIDs(JDFSpawned spawnAudit, HashSet<String> vvRO, HashSet<String> vvRW)
           
 Collection<JDFResource> checkSpawnedResources()
          return the resources that would be spawned RW multiple times
 Collection<JDFResource> cleanSpawnedResources()
          cleans up node so that no multiple spawnIDs remain
removes SpawnIDS and SpawnStatus from all resources that are spawnedRW by this spawn;
note that the vRWResources_in and vSpawnParts MUST be populated
audits are not modified
 void setNode(JDFNode newNode)
          set the node to spawn
 JDFNode spawn()
          spawn a node; url is the file name of the new node, vRWResourceUsage is the vector of Resources Usages (or Names if no usage exists for the process) that are spawned RW, all others are spawned read only; vParts is the vector of part maps that are to be spawned, defaults to no part, i.e. the whole thing the format is one of:
ResName:Input
ResName:Output
ResName:ProcessUsage
 JDFNode spawn(String _parentURL, String _spawnURL, VString _vRWResources_in, VJDFAttributeMap _vSpawnParts, boolean _bSpawnROPartsOnly, boolean _bCopyNodeInfo, boolean _bCopyCustomerInfo, boolean _bCopyComments)
          spawn a node; url is the file name of the new node, vRWResourceUsage is the vector of Resources Usages (or Names if no usage exists for the process) that are spawned RW, all others are spawned read only; vParts is the vector of part maps that are to be spawned, defaults to no part, i.e. the whole thing
 JDFNode spawnInformative()
          spawn a node in informative mode without modifying the root JDF; url is the file name of the new node, the parameters except for the list of rw resources, which are by definition empty, are identical to those of Spawn vRWResourceUsage is the vector of Resources Usages, Resource Names or Resource IDs that are spawned RW, all others are spawned read only; vParts is the vector of part maps that are to be spawned, defaults to no part, i.e. the whole thing
 JDFNode spawnInformative(String _parentURL, String _spawnURL, VJDFAttributeMap _vSpawnParts, boolean _bSpawnROPartsOnly, boolean _bCopyNodeInfo, boolean _bCopyCustomerInfo, boolean _bCopyComments)
          spawn a node in informative mode without modifying the root JDF; url is the file name of the new node, the parameters except for the list of rw resources, which are by definition empty, are identical to those of Spawn vRWResourceUsage is the vector of Resources Usages, Resource Names or Resource IDs that are spawned RW, all others are spawned read only; vParts is the vector of part maps that are to be spawned, defaults to no part, i.e. the whole thing
 String toString()
           
 JDFNode unSpawn(String spawnID)
          Method unSpawn. undo a spawn, removing any and all bookkeeping of that spawning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

bSpawnROPartsOnly

public boolean bSpawnROPartsOnly
if true, reduce read only partitions, else retain entire resource


bSpawnRWPartsMultiple

public boolean bSpawnRWPartsMultiple
if true, allow multiple rw spawning of resources note that this feature causes race conditions when merging


bCopyNodeInfo

public boolean bCopyNodeInfo
if true, copy node info


bSpawnIdentical

public boolean bSpawnIdentical
if true, copy node info


bCopyCustomerInfo

public boolean bCopyCustomerInfo
if true, copy customer info


bCopyComments

public boolean bCopyComments
if true, copy comments


bFixResources

public boolean bFixResources
if true, ensure sufficient partitioning of rw resources, else do not add missing partitions


parentURL

public String parentURL

spawnURL

public String spawnURL

vRWResources_in

public VString vRWResources_in
list of all resources to copy rw


vSpawnParts

public VJDFAttributeMap vSpawnParts
list of partitions to spawn


exAlreadyMerged

public static final int exAlreadyMerged
exception id for multiple merge attempt

See Also:
Constant Field Values

exMultiSpawnRW

public static final int exMultiSpawnRW
exception id for multiple rw spawns

See Also:
Constant Field Values
Constructor Detail

JDFSpawn

public JDFSpawn(JDFNode nodeToSpawn)
Parameters:
nodeToSpawn - the node to be spawned
Method Detail

setNode

public void setNode(JDFNode newNode)
set the node to spawn

Parameters:
newNode - the node to set
Throws:
JDFException - if node is NOT in the same document as the initial node

spawn

public JDFNode spawn()
spawn a node; url is the file name of the new node, vRWResourceUsage is the vector of Resources Usages (or Names if no usage exists for the process) that are spawned RW, all others are spawned read only; vParts is the vector of part maps that are to be spawned, defaults to no part, i.e. the whole thing the format is one of:
ResName:Input
ResName:Output
ResName:ProcessUsage

Returns:
The spawned node
Since:
050831 added bCopyComments @ tbd enhance nested spawning of partitioned nodes default: spawn(parentURL, null, null, null, false, false, false, false)

cleanSpawnedResources

public Collection<JDFResource> cleanSpawnedResources()
cleans up node so that no multiple spawnIDs remain
removes SpawnIDS and SpawnStatus from all resources that are spawnedRW by this spawn;
note that the vRWResources_in and vSpawnParts MUST be populated
audits are not modified

Returns:
the list of cleaned resource leaves, null if no cleanup was necessary

checkSpawnedResources

public Collection<JDFResource> checkSpawnedResources()
return the resources that would be spawned RW multiple times

Returns:
Collection: set of resources or resource partitions that would be spawned rw multiple times null if all is well

calcAuditSpawnIDs

protected void calcAuditSpawnIDs(JDFSpawned spawnAudit,
                                 HashSet<String> vvRO,
                                 HashSet<String> vvRW)

spawnInformative

public JDFNode spawnInformative()
spawn a node in informative mode without modifying the root JDF; url is the file name of the new node, the parameters except for the list of rw resources, which are by definition empty, are identical to those of Spawn vRWResourceUsage is the vector of Resources Usages, Resource Names or Resource IDs that are spawned RW, all others are spawned read only; vParts is the vector of part maps that are to be spawned, defaults to no part, i.e. the whole thing

Returns:
JDFDoc: The spawned node's owner document.

spawn

public JDFNode spawn(String _parentURL,
                     String _spawnURL,
                     VString _vRWResources_in,
                     VJDFAttributeMap _vSpawnParts,
                     boolean _bSpawnROPartsOnly,
                     boolean _bCopyNodeInfo,
                     boolean _bCopyCustomerInfo,
                     boolean _bCopyComments)
spawn a node; url is the file name of the new node, vRWResourceUsage is the vector of Resources Usages (or Names if no usage exists for the process) that are spawned RW, all others are spawned read only; vParts is the vector of part maps that are to be spawned, defaults to no part, i.e. the whole thing

Parameters:
_parentURL -
_spawnURL - : URL of the spawned JDF file
_vRWResources_in - : vector of resource names and Usage / ProcessUsage that are spawned as rw
the format is one of:
ResName:Input
ResName:Output
ResName:ProcessUsage
_vSpawnParts - vector of mAttributes that describe the parts to spawn, only valid PartIDKeys are allowed
_bSpawnROPartsOnly - if true, only the parts of RO resources that are specified in vParts are spawned, else the complete resource is spawned
_bCopyNodeInfo - copy the NodeInfo elements into the Ancestors
_bCopyCustomerInfo - copy the CustomerInfo elements into the Ancestors
_bCopyComments - copy the Comment elements into the Ancestors
Returns:
The spawned node
Since:
050831 added bCopyComments @ tbd enhance nested spawning of partitioned nodes default: spawn(parentURL, null, null, null, false, false, false, false)

spawnInformative

public JDFNode spawnInformative(String _parentURL,
                                String _spawnURL,
                                VJDFAttributeMap _vSpawnParts,
                                boolean _bSpawnROPartsOnly,
                                boolean _bCopyNodeInfo,
                                boolean _bCopyCustomerInfo,
                                boolean _bCopyComments)
spawn a node in informative mode without modifying the root JDF; url is the file name of the new node, the parameters except for the list of rw resources, which are by definition empty, are identical to those of Spawn vRWResourceUsage is the vector of Resources Usages, Resource Names or Resource IDs that are spawned RW, all others are spawned read only; vParts is the vector of part maps that are to be spawned, defaults to no part, i.e. the whole thing

Parameters:
_parentURL -
_spawnURL - : URL of the spawned JDF file
_vSpawnParts - : vector of mAttributes that describe the parts to spawn
_bSpawnROPartsOnly - if true, only the parts of RO resources that are specified in vParts are spawned, else the complete resource is spawned
_bCopyNodeInfo - copy the NodeInfo elements into the Ancestors
_bCopyCustomerInfo - copy the CustomerInfo elements into the Ancestors
_bCopyComments - copy the Comment elements into the Ancestors
Returns:
JDFDoc: The spawned node's owner document.

unSpawn

public JDFNode unSpawn(String spawnID)
Method unSpawn. undo a spawn, removing any and all bookkeeping of that spawning

Parameters:
spawnID - spawnID of the spawn to undo, if null find the first spawned node
Returns:
the fixed unspawned node

toString

public String toString()
Overrides:
toString in class Object
Returns:
See Also:
Object.toString()


Copyright © 2013. All Rights Reserved.