Class JDFSpawn

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

public class JDFSpawn extends Object
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    boolean
    if true, copy comments
    boolean
    if true, copy customer info
    boolean
    if true, copy node info
    boolean
    if true, ensure sufficient partitioning of rw resources, else do not add missing partitions
    boolean
    if true, copy identical elements
    boolean
    if true, reduce read only partitions, else retain entire resource
    boolean
    if true, allow multiple rw spawning of resources note that this feature causes race conditions when merging
    static final int
    exception id for multiple merge attempt
    static final int
    exception id for multiple rw spawns
     
     
    list of all resources to copy rw
    list of partitions to spawn
  • Constructor Summary

    Constructors
    Constructor
    Description
    JDFSpawn(JDFNode nodeToSpawn)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
     
    return the resources that would be spawned RW multiple times
    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
    void
    setvROSpawnParts(VString vROSpawnParts)
     
    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.
     
    unSpawn(String spawnID)
    Method unSpawn.
    void
    unSpawnChild(JDFNode childNode)
    remove all spawn related stuff from the spawned childNode

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • 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 identical elements
    • 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:
    • exMultiSpawnRW

      public static final int exMultiSpawnRW
      exception id for multiple rw spawns
      See Also:
  • Constructor Details

    • JDFSpawn

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

    • getvROSpawnParts

      public VString getvROSpawnParts()
      Returns:
      the vROSpawnParts
    • setvROSpawnParts

      public void setvROSpawnParts(VString vROSpawnParts)
      Parameters:
      vROSpawnParts - the vROSpawnParts to set if set
    • 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:
    • unSpawnChild

      public void unSpawnChild(JDFNode childNode)
      remove all spawn related stuff from the spawned childNode
      Parameters:
      childNode -