Package org.cip4.jdflib.util
Class JDFSpawn
java.lang.Object
org.cip4.jdflib.util.JDFSpawn
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanif true, copy commentsbooleanif true, copy customer infobooleanif true, copy node infobooleanif true, ensure sufficient partitioning of rw resources, else do not add missing partitionsbooleanif true, copy identical elementsbooleanif true, reduce read only partitions, else retain entire resourcebooleanif true, allow multiple rw spawning of resources note that this feature causes race conditions when mergingstatic final intexception id for multiple merge attemptstatic final intexception id for multiple rw spawnslist of all resources to copy rwlist of partitions to spawn -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidcalcAuditSpawnIDs(JDFSpawned spawnAudit, HashSet<String> vvRO, HashSet<String> vvRW) return the resources that would be spawned RW multiple timescleans 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 modifiedvoidset the node to spawnvoidsetvROSpawnParts(VString vROSpawnParts) 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.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.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.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.toString()Method unSpawn.voidunSpawnChild(JDFNode childNode) remove all spawn related stuff from the spawned childNode
-
Field Details
-
bSpawnROPartsOnly
public boolean bSpawnROPartsOnlyif true, reduce read only partitions, else retain entire resource -
bSpawnRWPartsMultiple
public boolean bSpawnRWPartsMultipleif true, allow multiple rw spawning of resources note that this feature causes race conditions when merging -
bCopyNodeInfo
public boolean bCopyNodeInfoif true, copy node info -
bSpawnIdentical
public boolean bSpawnIdenticalif true, copy identical elements -
bCopyCustomerInfo
public boolean bCopyCustomerInfoif true, copy customer info -
bCopyComments
public boolean bCopyCommentsif true, copy comments -
bFixResources
public boolean bFixResourcesif true, ensure sufficient partitioning of rw resources, else do not add missing partitions -
parentURL
-
spawnURL
-
vRWResources_in
list of all resources to copy rw -
vSpawnParts
list of partitions to spawn -
exAlreadyMerged
public static final int exAlreadyMergedexception id for multiple merge attempt- See Also:
-
exMultiSpawnRW
public static final int exMultiSpawnRWexception id for multiple rw spawns- See Also:
-
-
Constructor Details
-
JDFSpawn
- Parameters:
nodeToSpawn- the node to be spawned
-
-
Method Details
-
getvROSpawnParts
- Returns:
- the vROSpawnParts
-
setvROSpawnParts
- Parameters:
vROSpawnParts- the vROSpawnParts to set if set
-
setNode
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
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
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
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
-
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
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
-
unSpawnChild
remove all spawn related stuff from the spawned childNode- Parameters:
childNode-
-