wt.part
Class StandardWTPartService

java.lang.Object
  extended bywt.services.StandardManager
      extended bywt.part.StandardWTPartService
All Implemented Interfaces:
ApplicationContextChild, Manager, NetFactor, Serializable, WTPartService

public class StandardWTPartService
extends StandardManager
implements WTPartService, ApplicationContextChild, Serializable

This implementation of WTPartService implements the service API and adds listeners in performStartupProcess().

Use the newStandardWTPartService static factory method(s), not the StandardWTPartService constructor, to construct instances of this class. Instances must be constructed using the static factory(s), in order to ensure proper initialization of the instance.



Supported API: true

Extendable: true

See Also:
Serialized Form

Field Summary
private  ApplicationContext applicationContext
           
private static String CLASSNAME
           
private static String DEFAULT_VIEW_PREF_KEY
           
private static String DEFAULT_VIEW_PREF_NODE
           
private static String ID
           
private static String ITERATION_MASTER_OID
           
private static String OBJECT_IDENTIFIER
           
private static String PART_EXPORT_TARGET_ROLE_OID
           
private static boolean proIInst
           
private static String RESOURCE
           
private static boolean VERBOSE
           
private static String WTPART_ROLE_OID
           
 
Fields inherited from class wt.services.StandardManager
 
Fields inherited from interface wt.part.WTPartService
DEFAULT_CONFIG_SPEC_VIEW_PREF
 
Fields inherited from interface wt.services.applicationcontext.ApplicationContextChild
APPLICATION_CONTEXT
 
Fields inherited from interface wt.services.Manager
MANAGER_SERVICE, STARTUP_AUTOMATIC, STARTUP_MANUAL, STATUS_EMERGENCY_SHUTDOWN, STATUS_EMERGENCY_SHUTTING_DOWN, STATUS_SHUTDOWN, STATUS_SHUTDOWN_ERRORS, STATUS_SHUTDOWN_FAILURE, STATUS_SHUTTING_DOWN, STATUS_STARTED, STATUS_STARTED_ERRORS, STATUS_STARTING_UP, STATUS_STARTUP_FAILURE
 
Constructor Summary
StandardWTPartService()
           
 
Method Summary
private  QueryResult addOccurrenceData(QueryResult original, PathOccurrenceContext context, Class occurrenceDataClass)
           
private  void assignConfiguration(WTSerialNumberedPartInstance instance)
           
private  void assignContainerDefaultDomain(Persistable p)
           
private  void assignDomain(Persistable p)
           
 WTPartMaster changeWTPartMasterIdentity(WTPartMaster part_master, String name, String number, WTOrganization org)
          Change the identity of Part Master with the new name, number and organization.
protected  void checkConfigSpecReference(String referenceAttributeName, WTCollection coll)
           
protected  void checkReflexive(ObjectToObjectLink link)
           
private  QueryResult consolidateBOM(QueryResult bom)
          Consolidate a BOM by combining usage links with the same target into consolidated links with added quantities.
private  Hashtable consolidateUsageLinks(QueryResult usageLinks)
           
private  void copyIBAValues(IBAHolder original, IBAHolder copy)
           
protected  void copyWTPartSubstituteLinks(WTCollection partUsageLinks, WTKeyedMap evtMap)
           
 WTProductConfiguration copyWTProductConfiguration(WTProductConfiguration configuration, String newConfigurationName)
          

Supported API: false
 WTProductInstance2 copyWTProductInstance2(WTProductInstance2 baseInstance)
          

Supported API: false
protected  Persistable[][] createUsages(WTCollection links, WTValuedMap masterPartMap)
          Processes the input collection of usage links and creates a Persistable[2] for each one where [0] is the usage link and [1] is the part or part master as found in the input master->parts map.
protected  void deleteRelatedUsesOccurrences(WTCollection coll)
           
protected  WTValuedMap filteredIterationsKeyedByMaster(WTCollection masters, ConfigSpec configSpec)
          Applys a config spec to the masters and returns a map where the keys are the masters from the input and values are the iterations selected by the config spec.
protected static QueryResult filterOriginalCopiesInBuildRules(WTPart sourcePart, QueryResult buildRuleLinks)
          Outputs the given Describes Documents.
 WTSet filterPartsWithChildren(WTCollection parts)
          Return a WTSet of the part objects passed in that play the used-by role in a WTPartUsageLink; that is, this method returns those parts that use other parts.
 WTPartConfigSpec findWTPartConfigSpec()
          Returns the WTPartConfigSpec for the current principal.
 QueryResult getAlternateForWTPartMasters(WTPartMaster partMaster)
          Navigates WTPartAlternateLinks along the Alternate For role.
 QueryResult getAlternatesWTPartMasters(WTPartMaster partMaster)
          Navigates WTPartAlternateLinks along the Alternates role.
 ApplicationContext getApplicationContext()
          Gets the object for the association that plays role: applicationContext.
 QueryResult[] getBomDifferences(WTPart currentPart, WTPart previousPart)
          Deprecated.  
 String getConceptualClassname()
          Deprecated.  
private  ConfigSpec getConfigSpec(WTProductConfiguration productConfiguration)
           
private  ConfigSpec getConfigSpec(WTProductInstance2 productInstance)
           
 QueryResult getConsolidatedBOM(WTPart part)
          Deprecated.  
 View getDefaultConfigSpecViewPref()
          Gets the value of the attribute: defaultConfigSpecViewPref.
 QueryResult getDescribedByDocuments(WTPart part)
          Return a QueryResult of Documents (WTDocuments AND EPMDocuments) that the given WTPart is being described by.
 QueryResult getDescribedByDocuments(WTPart part, boolean onlyOtherSides)
          Return a QueryResult of Documents (WTDocuments AND EPMDocuments) that the given WTPart is being described by.
 QueryResult getDescribedByWTDocuments(WTPart part)
          Return a QueryResult of WTDocuments that the given WTPart is being described by.
 QueryResult getDescribedByWTDocuments(WTPart part, boolean onlyOtherSides)
          Return a QueryResult of WTDocuments that the given WTPart is being described by.
 QueryResult getDescribesWTParts(WTDocument document)
          Return a QueryResult of WTParts that the given WTDocument describes.
 QueryResult getDescribesWTParts(WTDocument document, boolean onlyOtherSides)
          Return a QueryResult of WTParts that the given WTDocument describes.
 Timestamp getExportDate(WTPart part, PartExportTarget target)
          Get the date when this part iteration was exported to another system - for example, an ERP system.
protected  WTSet getMasters(WTKeyedMap map)
          Returns a set of unique master objects from the input map that maps parts to their associated usage links.
 void getMultilevelBomCompare(WTPartMaster part1, ConfigSpec spec1, WTPartMaster part2, ConfigSpec spec2, int maxDepth, MultilevelBomCompareVisitor aVisitor)
          Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions.
 void getMultilevelBomCompare(WTPartMaster part1, WTPartConfigSpec spec1, WTPartMaster part2, WTPartConfigSpec spec2, int maxDepth, MultilevelBomCompareVisitor aVisitor)
          Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions.
protected  void getMultilevelBomDifferences(WTPart part1, BaselineConfigurationConfigSpec spec1, WTPart part2, BaselineConfigurationConfigSpec spec2, PartPathOccurrence path, int maxDepth, int currentDepth, MultilevelBomCompareVisitor aVisitor)
           
protected  void getMultilevelBomDifferences(WTPart part1, WTPartConfigSpec spec1, WTPart part2, WTPartConfigSpec spec2, int maxDepth, int currentDepth, MultilevelBomCompareVisitor aVisitor)
          Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions.
protected  void getMultilevelBomDifferences(WTPart part1, WTProductConfiguration productConfiguration1, WTPart part2, WTProductConfiguration productConfiguration2, PartPathOccurrence path, int maxDepth, int currentDepth, MultilevelBomCompareVisitor aVisitor)
          Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions.
protected  void getMultilevelBomDifferences(WTPart part1, WTProductInstance2 productInstance1, SerialNumberedConfiguredInstanceConfigSpec spec1, WTPart part2, WTProductInstance2 productInstance2, SerialNumberedConfiguredInstanceConfigSpec spec2, PartPathOccurrence path, int maxDepth, int currentDepth, MultilevelBomCompareVisitor aVisitor)
          Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions.
 void getMultilevelWhereUsed(WTPart part, Navigator navigator, MultilevelWhereUsedVisitor visitor)
          Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions.
 void getMultilevelWhereUsed(WTPart part, WTPartConfigSpec spec, Navigator navigator, MultilevelWhereUsedVisitor visitor)
          Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions.
protected  WTSerialNumberedPartInstance getOrStoreSNPI(WTSerialNumberedPartInstance snpi)
           
protected static WTObject getOtherSideObject(Object link, Persistable persistableObj)
          Gets the Other Side Object if the link Object is a BinaryLink; otherwise it just returns null.
 PartUsesOccurrence getPartUsesOccurrence(PartPathOccurrence usedByPathOccurrence, WTProductConfiguration configuration)
          Returns the PartUsesOccurrence associated with the given PartPathOccurence for the as used in the given WTProductConfiguration.
 Vector getPartUsesOccurrences(Vector links)
          

Supported API: false
 QueryResult getReferencesWTDocumentMasters(WTPart part)
          Returns the WTDocumentMasters that are referenced by this WTPart.
 QueryResult getSeparateUsesWTPartsWithOccurrences(QueryResult initialResult)
           
 QueryResult getSeparateUsesWTPartsWithOccurrences(QueryResult initialResult, WTProductInstance2 currentInstance, SerialNumberedConfiguredInstanceConfigSpec configSpec)
           
 QueryResult getSubstituteForWTPartUsageLinks(WTPartMaster partMaster)
          Navigates WTPartSubstituteLinks along the SubstituteFor role.
 QueryResult getSubstitutesWTPartMasters(WTPartUsageLink usageLink)
          Navigates WTPartSubstituteLinks along the Substitutes role.
 QueryResult getUsedByWTParts(WTPartMaster partMaster)
          Navigates the WTPartUsageLink along the usedBy role, returning a QueryResult of WTParts.
 QueryResult getUsesWTPartMasters(WTPart part)
          Navigates the WTPartUsageLink along the uses role, returning a QueryResult of WTPartUsageLinks.
 Persistable[][][] getUsesWTParts(WTList parts, ConfigSpec configSpec)
          Navigates from many used-by parts to their uses part masters and applies a ConfigSpec to select the iterations of the uses parts.
 QueryResult getUsesWTParts(WTPart part, ConfigSpec configSpec)
          Applies the configSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at the 0th position and the corresponding iterations (or master if there is no corresponding iteration) in the 1th position.
private  QueryResult getUsesWTPartsFromLinks(QueryResult partUsageLinks, ConfigSpec configSpec)
          This method is useful when you have one part and several config specs and you want to use getUsesWTPartMasters to get the uses masters in one call and then use those masters to get the parts for each config spec.
private  QueryResult getUsesWTPartsFromLinks(QueryResult partUsageLinks, WTPartConfigSpec configSpec)
          This method is useful when you have one part and several config specs and you want to use getUsesWTPartMasters to get the uses masters in one call and then use those masters to get the parts for each config spec.
 QueryResult getUsesWTPartsWithAllOccurrences(WTPart part, ConfigSpec configSpec)
          This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.
 QueryResult getUsesWTPartsWithAllOccurrences(WTPart part, ConfigSpec configSpec, PartPathOccurrence subPathOccurrence)
          This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.
 QueryResult getUsesWTPartsWithAllOccurrences(WTPart part, WTProductConfiguration productConfiguration, PartPathOccurrence subPathOccurrence)
          This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.
 QueryResult getUsesWTPartsWithAllOccurrences(WTPart part, WTProductInstance2 productInstance, PartPathOccurrence subPathOccurrence)
          This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.
 Persistable[][][] getUsesWTPartsWithOccurrences(WTList parts, List pathOccurrences, ConfigSpec configSpec)
          Navigates from many used-by parts to their uses part masters and applies a ConfigSpec to select the iterations of the uses parts.
 Persistable[][][] getUsesWTPartsWithOccurrences(WTList parts, List pathOccurrences, WTProductConfiguration productConfiguration)
          Navigates from many used-by parts to their uses part masters and applies a ConfigSpec to select the iterations of the uses parts.
 Persistable[][][] getUsesWTPartsWithOccurrences(WTList parts, List pathOccurrences, WTProductInstance2 productInstance)
          Navigates from many used-by parts to their uses part masters and applies a ConfigSpec to select the iterations of the uses parts.
 QueryResult getUsesWTPartsWithOccurrences(WTPart part, ConfigSpec configSpec)
          This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.
 QueryResult getUsesWTPartsWithOccurrences(WTPart part, ConfigSpec configSpec, PartPathOccurrence subPathOccurrence)
          This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.
 QueryResult getUsesWTPartsWithOccurrences(WTPart part, WTProductConfiguration productConfiguration, PartPathOccurrence subPathOccurrence)
          This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.
 QueryResult getUsesWTPartsWithOccurrences(WTPart part, WTProductInstance2 productInstance, PartPathOccurrence subPathOccurrence)
          This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.
protected  WTPartConfigSpec intFindWTPartConfigSpec()
           
protected  SerialNumberMapping intLittleSNPIMap(WTProductInstance2 productInstance, PathOccurrence path, WTSerialNumberedPartInstance instanceToAllocate)
           
 SerialNumberMapping intLittleSNPIRemap(SerialNumberMapping mapping, WTSerialNumberedPartInstance newInstance)
           
 boolean isAnAlternateOf(WTPartMaster partMasterA, WTPartMaster partMasterB)
          Determines if argument A is an alternate of argument B

Supported API: true
 WTPart latestExport(WTPartMaster master, PartExportTarget target)
          Returns the most recently iteration of a part master that was exported to another system - for example, an ERP System.
 WTProductInstance2 littleChange(WTProductInstance2 productInstance, WTProductConfiguration productConfiguration)
          

Supported API: false
 SerialNumberMapping littleMap(WTProductInstance2 productInstance, PathOccurrence path, WTProductInstanceMaster instanceToAllocate)
          

Supported API: false
 SerialNumberMapping littleMap(WTProductInstance2 productInstance, PathOccurrence path, WTSerialNumberedPartInstance instanceToAllocate)
          

Supported API: false
 BaselineConfigurationOverride littleOver(WTProductConfiguration productConfiguration, PathOccurrence path, WTPart part)
          

Supported API: false
 WTProductConfiguration littlePop(WTProductConfiguration productConfiguration, Persistable startingNode, boolean repop, ConfigSpec configSpec)
          

Supported API: false
 WTProductConfiguration littlePut(WTProductConfiguration productConfiguration, WTPart part)
          

Supported API: false
 SerialNumberMapping littleRemap(SerialNumberMapping mapping, WTProductInstanceMaster newInstance)
          

Supported API: false
 SerialNumberMapping littleRemap(SerialNumberMapping mapping, WTSerialNumberedPartInstance newInstance)
          

Supported API: false
 WTProductConfiguration littleRemover(WTProductConfiguration productConfiguration, BaselineConfigurationOverride override)
          

Supported API: false
 BaselineConfigurationOverride littleReover(BaselineConfigurationOverride override, WTPart newPart)
          

Supported API: false
 WTProductInstance2 littleUnmap(WTProductInstance2 productInstance, SerialNumberMapping mapping)
          

Supported API: false
protected  WTKeyedMap navigateUses(WTCollection parts)
          Navigate the uses role on an entire collection of parts all at once.
static StandardWTPartService newStandardWTPartService()
          Default factory for the class.
private  boolean occurrencePathsMayExist(PartPathOccurrence path)
           
protected  void performStartupProcess()
          Adds an event listener to copy substitute links when their usage links are copied.
 WTPartMaster publish(WTPart part)
          Publish the IBA values on the given part to the part master.
private  PathOccurrenceContext refreshPathOccurrenceContextVersion(PathOccurrenceContext poc)
           
private  PathOccurrenceData refreshPathOccurrenceData(PathOccurrenceContext poc, PathOccurrenceData pod)
           
 Enumeration[] retrieveBomDifferences(WTPart currentPart, WTPart previousPart)
          Compares the bill of material of the current WTPart with a previous WTPart.
 Enumeration[] retrieveBomDifferences(WTPart currentPart, WTPart previousPart, boolean ignoreLineNumbers)
          Compares the bill of material of the current WTPart with a previous WTPart.
 Enumeration retrieveBomInformation(WTPart part)
          Returns an Enumeration of PartUsageInfo objects given a WTPart.
 Enumeration retrieveBomInformation(WTPart part, boolean ignoreLineNumbers)
          Returns an Enumeration of PartUsageInfo objects given a WTPart.
 WTPartConfigSpec saveWTPartConfigSpec(WTPartConfigSpec a_PartConfigSpec)
          Saves the WTPartConfigSpec for the current principal.
 WTProductInstance2 saveWTProductInstance2Copy(WTProductInstance2 baseInstance, WTProductInstance2 newInstance)
          

Supported API: false
 void setApplicationContext(ApplicationContext a_ApplicationContext)
          Sets the object for the association that plays role: applicationContext.
 void setDefaultConfigSpecViewPref(View a_DefaultConfigSpecViewPref)
          Sets the value of the attribute: defaultConfigSpecViewPref.
 Timestamp setExportDate(WTPart part, PartExportTarget target, Timestamp timestamp)
          Set the date that this part iteration was exported to another system - for example, an ERP system.
 
Methods inherited from class wt.services.StandardManager
emergencyShutdown, emergencyShutdownComplete, emergencyShuttingDown, getClassInfo, getManagerService, getManagerStatus, getName, getStartupType, init, initialize, initialize, isStarted, newStandardManager, newStandardManager, performEmergencyShutdownProcess, performShutdownProcess, registerEvents, setManagerService, shutdown, shutdownFailure, shutdownSuccess, shuttingDown, started, startedErrors, startingUp, startup, startupFailure, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

RESOURCE

private static final String RESOURCE
See Also:
Constant Field Values

CLASSNAME

private static final String CLASSNAME

applicationContext

private ApplicationContext applicationContext

WTPART_ROLE_OID

private static final String WTPART_ROLE_OID
See Also:
Constant Field Values

PART_EXPORT_TARGET_ROLE_OID

private static final String PART_EXPORT_TARGET_ROLE_OID
See Also:
Constant Field Values

ID

private static final String ID
See Also:
Constant Field Values

OBJECT_IDENTIFIER

private static final String OBJECT_IDENTIFIER
See Also:
Constant Field Values

ITERATION_MASTER_OID

private static final String ITERATION_MASTER_OID
See Also:
Constant Field Values

DEFAULT_VIEW_PREF_NODE

private static final String DEFAULT_VIEW_PREF_NODE
See Also:
Constant Field Values

DEFAULT_VIEW_PREF_KEY

private static final String DEFAULT_VIEW_PREF_KEY
See Also:
Constant Field Values

proIInst

private static boolean proIInst

VERBOSE

private static final boolean VERBOSE
See Also:
Constant Field Values
Constructor Detail

StandardWTPartService

public StandardWTPartService()
Method Detail

getConceptualClassname

public String getConceptualClassname()
Deprecated.  

Returns the conceptual (modeled) name for the class.

Supported API: false

Specified by:
getConceptualClassname in interface NetFactor
Overrides:
getConceptualClassname in class StandardManager
Returns:
String

performStartupProcess

protected void performStartupProcess()
                              throws ManagerException
Adds an event listener to copy substitute links when their usage links are copied.

Supported API: false

Overrides:
performStartupProcess in class StandardManager
Throws:
ManagerException

newStandardWTPartService

public static StandardWTPartService newStandardWTPartService()
                                                      throws WTException
Default factory for the class.

Supported API: false

Returns:
StandardWTPartService
Throws:
WTException

getDefaultConfigSpecViewPref

public View getDefaultConfigSpecViewPref()
                                  throws WTException
Gets the value of the attribute: defaultConfigSpecViewPref.

Supported API: false

Specified by:
getDefaultConfigSpecViewPref in interface WTPartService
Returns:
View
Throws:
WTException

setDefaultConfigSpecViewPref

public void setDefaultConfigSpecViewPref(View a_DefaultConfigSpecViewPref)
                                  throws WTException
Sets the value of the attribute: defaultConfigSpecViewPref.

Supported API: false

Specified by:
setDefaultConfigSpecViewPref in interface WTPartService
Parameters:
a_DefaultConfigSpecViewPref -
Throws:
WTException

publish

public WTPartMaster publish(WTPart part)
                     throws WTException
Publish the IBA values on the given part to the part master.

Supported API: true

Specified by:
publish in interface WTPartService
Parameters:
part -
Returns:
WTPartMaster
Throws:
WTException

getUsesWTParts

public QueryResult getUsesWTParts(WTPart part,
                                  ConfigSpec configSpec)
                           throws WTException
Applies the configSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at the 0th position and the corresponding iterations (or master if there is no corresponding iteration) in the 1th position.

Supported API: true

Specified by:
getUsesWTParts in interface WTPartService
Parameters:
part - The WTPart to navigate.
configSpec - The ConfigSpec to use to filter the iterations for the masters used.
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartUsageLink, WTPart, WTPartMaster, Persistable

getUsesWTParts

public Persistable[][][] getUsesWTParts(WTList parts,
                                        ConfigSpec configSpec)
                                 throws WTException
Navigates from many used-by parts to their uses part masters and applies a ConfigSpec to select the iterations of the uses parts. Returns a three dimensional array of Persistable where the first dimension is corresponds the the used-by parts passed in. The second dimension corresponds to the part usage links from the used-by part. The third dimension is two elements long where [0] is the WTPartUsageLink and [2] is the uses WTPart or WTPartMaster if the config spec did not select an iteration of the uses part.

Supported API: true

Specified by:
getUsesWTParts in interface WTPartService
Parameters:
parts - Ordered list of used-by parts.
configSpec - The config spec to use to select the uses part iterations.
Returns:
Persistable[][][]
Throws:
WTException

getUsesWTPartsWithOccurrences

public Persistable[][][] getUsesWTPartsWithOccurrences(WTList parts,
                                                       List pathOccurrences,
                                                       ConfigSpec configSpec)
                                                throws WTException
Navigates from many used-by parts to their uses part masters and applies a ConfigSpec to select the iterations of the uses parts. Also includes uses and path occurrences along with path occurrence data. The parameters parts and pathOccurrences are parallel lists where the part and its corresponding path occurrence are at the same index in the two lists. If a part does not have a path occurrence, then its path occurrence should be null in the list of path occurrences. This method returns a three dimensional array of Persistable where the first dimension is corresponds the the used-by parts passed in. The second dimension corresponds to the part usage links from the used-by part. The third dimension is two elements long where [0] is the WTPartUsageLink and [2] is the uses WTPart or WTPartMaster if the config spec did not select an iteration of the uses part.

Supported API: true

Specified by:
getUsesWTPartsWithOccurrences in interface WTPartService
Parameters:
parts - Ordered list of used-by parts.
pathOccurrences - Ordered list of path occurrences whose order corresponds to the order of the parts.
configSpec - The config spec to use to select the uses part iterations.
Returns:
Persistable[][][]
Throws:
WTException

getUsesWTPartsWithOccurrences

public Persistable[][][] getUsesWTPartsWithOccurrences(WTList parts,
                                                       List pathOccurrences,
                                                       WTProductConfiguration productConfiguration)
                                                throws WTException
Navigates from many used-by parts to their uses part masters and applies a ConfigSpec to select the iterations of the uses parts. Also includes uses and path occurrences along with path occurrence data. The parameters parts and pathOccurrences are parallel lists where the part and its corresponding path occurrence are at the same index in the two lists. If a part does not have a path occurrence, then its path occurrence should be null in the list of path occurrences. This method returns a three dimensional array of Persistable where the first dimension is corresponds the the used-by parts passed in. The second dimension corresponds to the part usage links from the used-by part. The third dimension is two elements long where [0] is the WTPartUsageLink and [2] is the uses WTPart or WTPartMaster if the config spec did not select an iteration of the uses part.

Supported API: true

Specified by:
getUsesWTPartsWithOccurrences in interface WTPartService
Parameters:
parts - Ordered list of used-by parts.
pathOccurrences - Ordered list of path occurrences whose order corresponds to the order of the parts.
productConfiguration - The product configuration being navigated. This is used as the config spec and to get the path occurrence data.
Returns:
Persistable[][][]
Throws:
WTException

getUsesWTPartsWithOccurrences

public Persistable[][][] getUsesWTPartsWithOccurrences(WTList parts,
                                                       List pathOccurrences,
                                                       WTProductInstance2 productInstance)
                                                throws WTException
Navigates from many used-by parts to their uses part masters and applies a ConfigSpec to select the iterations of the uses parts. Also includes uses and path occurrences along with path occurrence data. The parameters parts and pathOccurrences are parallel lists where the part and its corresponding path occurrence are at the same index in the two lists. If a part does not have a path occurrence, then its path occurrence should be null in the list of path occurrences. This method returns a three dimensional array of Persistable where the first dimension is corresponds the the used-by parts passed in. The second dimension corresponds to the part usage links from the used-by part. The third dimension is two elements long where [0] is the WTPartUsageLink and [2] is the uses WTPart or WTPartMaster if the config spec did not select an iteration of the uses part.

Supported API: true

Specified by:
getUsesWTPartsWithOccurrences in interface WTPartService
Parameters:
parts - Ordered list of used-by parts.
pathOccurrences - Ordered list of path occurrences whose order corresponds to the order of the parts.
productInstance - The product instance being navigated. This is used as the config spec and to get the path occurrence data.
Returns:
Persistable[][][]
Throws:
WTException

getUsesWTPartsWithOccurrences

public QueryResult getUsesWTPartsWithOccurrences(WTPart part,
                                                 ConfigSpec configSpec)
                                          throws WTException
This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.

Supported API: true

Specified by:
getUsesWTPartsWithOccurrences in interface WTPartService
Parameters:
part - The WTPart to navigate.
configSpec - The ConfigSpec to use to filter the iterations for the masters used.
Returns:
QueryResult
Throws:
WTException

getUsesWTPartsWithOccurrences

public QueryResult getUsesWTPartsWithOccurrences(WTPart part,
                                                 ConfigSpec configSpec,
                                                 PartPathOccurrence subPathOccurrence)
                                          throws WTException
This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.

Supported API: true

Specified by:
getUsesWTPartsWithOccurrences in interface WTPartService
Parameters:
part - The WTPart to navigate.
configSpec - The ConfigSpec to use to filter the iterations for the masters used.
subPathOccurrence - An array of UsesOccurrence objects that is used to find the relevant PathOccurrence objects that should be returned.
Returns:
QueryResult
Throws:
WTException

getUsesWTPartsWithOccurrences

public QueryResult getUsesWTPartsWithOccurrences(WTPart part,
                                                 WTProductConfiguration productConfiguration,
                                                 PartPathOccurrence subPathOccurrence)
                                          throws WTException
This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.

Supported API: true

Specified by:
getUsesWTPartsWithOccurrences in interface WTPartService
Parameters:
part - The WTPart to navigate.
productConfiguration - The ConfigSpec to use to filter the iterations for the masters used.
subPathOccurrence - An array of UsesOccurrence objects that is used to find the relevant PathOccurrence objects that should be returned.
Returns:
QueryResult
Throws:
WTException

getUsesWTPartsWithOccurrences

public QueryResult getUsesWTPartsWithOccurrences(WTPart part,
                                                 WTProductInstance2 productInstance,
                                                 PartPathOccurrence subPathOccurrence)
                                          throws WTException
This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.

Supported API: true

Specified by:
getUsesWTPartsWithOccurrences in interface WTPartService
Parameters:
part - The WTPart to navigate.
productInstance - The ConfigSpec to use to filter the iterations for the masters used.
subPathOccurrence - An array of UsesOccurrence objects that is used to find the relevant PathOccurrence objects that should be returned.
Returns:
QueryResult
Throws:
WTException

getUsesWTPartsWithAllOccurrences

public QueryResult getUsesWTPartsWithAllOccurrences(WTPart part,
                                                    ConfigSpec configSpec)
                                             throws WTException
This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.

Supported API: true

Specified by:
getUsesWTPartsWithAllOccurrences in interface WTPartService
Parameters:
part - The WTPart to navigate.
configSpec - The ConfigSpec to use to filter the iterations for the masters used.
Returns:
QueryResult
Throws:
WTException

getUsesWTPartsWithAllOccurrences

public QueryResult getUsesWTPartsWithAllOccurrences(WTPart part,
                                                    ConfigSpec configSpec,
                                                    PartPathOccurrence subPathOccurrence)
                                             throws WTException
This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.

Supported API: true

Specified by:
getUsesWTPartsWithAllOccurrences in interface WTPartService
Parameters:
part - The WTPart to navigate.
configSpec - The ConfigSpec to use to filter the iterations for the masters used.
subPathOccurrence - An array of UsesOccurrence objects that is used to find the relevant PathOccurrence objects that should be returned.
Returns:
QueryResult
Throws:
WTException

getUsesWTPartsWithAllOccurrences

public QueryResult getUsesWTPartsWithAllOccurrences(WTPart part,
                                                    WTProductConfiguration productConfiguration,
                                                    PartPathOccurrence subPathOccurrence)
                                             throws WTException
This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.

Supported API: true

Specified by:
getUsesWTPartsWithAllOccurrences in interface WTPartService
Parameters:
part - The WTPart to navigate.
productConfiguration - The ConfigSpec to use to filter the iterations for the masters used.
subPathOccurrence - An array of UsesOccurrence objects that is used to find the relevant PathOccurrence objects that should be returned.
Returns:
QueryResult
Throws:
WTException

getUsesWTPartsWithAllOccurrences

public QueryResult getUsesWTPartsWithAllOccurrences(WTPart part,
                                                    WTProductInstance2 productInstance,
                                                    PartPathOccurrence subPathOccurrence)
                                             throws WTException
This method applies the ConfigSpec to the result of navigating the WTPartUsageLink along the uses role; returns a QueryResult of Persistable[], in which the WTPartUsageLinks are at position 0 (and their occurrenceVector is populated with occurrences), the corresponding WTParts (or WTPartMasters if there is no corresponding part) in position 1.

Supported API: true

Specified by:
getUsesWTPartsWithAllOccurrences in interface WTPartService
Parameters:
part - The WTPart to navigate.
productInstance - The ConfigSpec to use to filter the iterations for the masters used.
subPathOccurrence - An array of UsesOccurrence objects that is used to find the relevant PathOccurrence objects that should be returned.
Returns:
QueryResult
Throws:
WTException

getUsesWTPartMasters

public QueryResult getUsesWTPartMasters(WTPart part)
                                 throws WTException
Navigates the WTPartUsageLink along the uses role, returning a QueryResult of WTPartUsageLinks.

Supported API: true

Specified by:
getUsesWTPartMasters in interface WTPartService
Parameters:
part - The part to navigate.
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartUsageLink, WTPartMaster

filterPartsWithChildren

public WTSet filterPartsWithChildren(WTCollection parts)
                              throws WTException
Return a WTSet of the part objects passed in that play the used-by role in a WTPartUsageLink; that is, this method returns those parts that use other parts.

Supported API: true

Specified by:
filterPartsWithChildren in interface WTPartService
Parameters:
parts - The colllection of WTParts to check which ones use other parts.
Returns:
WTSet
Throws:
WTException

getPartUsesOccurrence

public PartUsesOccurrence getPartUsesOccurrence(PartPathOccurrence usedByPathOccurrence,
                                                WTProductConfiguration configuration)
                                         throws WTException
Returns the PartUsesOccurrence associated with the given PartPathOccurence for the as used in the given WTProductConfiguration.

Supported API: true

Specified by:
getPartUsesOccurrence in interface WTPartService
Parameters:
usedByPathOccurrence -
configuration -
Returns:
PartUsesOccurrence
Throws:
WTException

getUsedByWTParts

public QueryResult getUsedByWTParts(WTPartMaster partMaster)
                             throws WTException
Navigates the WTPartUsageLink along the usedBy role, returning a QueryResult of WTParts. Note that only the latest iteration for any of the part versions is returned.

Supported API: true

Specified by:
getUsedByWTParts in interface WTPartService
Parameters:
partMaster - The part master to navigate to find those parts that use it.
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartUsageLink, WTPart

getReferencesWTDocumentMasters

public QueryResult getReferencesWTDocumentMasters(WTPart part)
                                           throws WTException
Returns the WTDocumentMasters that are referenced by this WTPart.

Supported API: true

Specified by:
getReferencesWTDocumentMasters in interface WTPartService
Parameters:
part - The part to get the referenced documents for.
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartReferenceLink, WTDocumentMaster

getDescribedByDocuments

public QueryResult getDescribedByDocuments(WTPart part)
                                    throws WTException
Return a QueryResult of Documents (WTDocuments AND EPMDocuments) that the given WTPart is being described by.

Supported API: true

Specified by:
getDescribedByDocuments in interface WTPartService
Parameters:
part -
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartDescribeLink, WTPart, WTDocument, EPMDescribeLink, wt.emp.EPMDocument

getDescribedByDocuments

public QueryResult getDescribedByDocuments(WTPart part,
                                           boolean onlyOtherSides)
                                    throws WTException
Return a QueryResult of Documents (WTDocuments AND EPMDocuments) that the given WTPart is being described by. If the onlyOtherSides parameter is false, the QueryResult includes a set of WTPart DescribeLinks that have references to the Documents.

Supported API: true

Specified by:
getDescribedByDocuments in interface WTPartService
Parameters:
part -
onlyOtherSides -
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartDescribeLink, WTPart, WTDocument, EPMDescribeLink, wt.emp.EPMDocument

getDescribedByWTDocuments

public QueryResult getDescribedByWTDocuments(WTPart part)
                                      throws WTException
Return a QueryResult of WTDocuments that the given WTPart is being described by.

Supported API: true

Specified by:
getDescribedByWTDocuments in interface WTPartService
Parameters:
part -
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartDescribeLink, WTPart, WTDocument

getDescribedByWTDocuments

public QueryResult getDescribedByWTDocuments(WTPart part,
                                             boolean onlyOtherSides)
                                      throws WTException
Return a QueryResult of WTDocuments that the given WTPart is being described by. If the onlyOtherSides parameter is false, the QueryResult includes a set of WTPart DescribeLinks that have references to the WTDocuments.

Supported API: true

Specified by:
getDescribedByWTDocuments in interface WTPartService
Parameters:
part -
onlyOtherSides -
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartDescribeLink, WTPart, WTDocument

getDescribesWTParts

public QueryResult getDescribesWTParts(WTDocument document)
                                throws WTException
Return a QueryResult of WTParts that the given WTDocument describes.

Supported API: true

Specified by:
getDescribesWTParts in interface WTPartService
Parameters:
document -
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartDescribeLink, WTPart, WTDocument

getDescribesWTParts

public QueryResult getDescribesWTParts(WTDocument document,
                                       boolean onlyOtherSides)
                                throws WTException
Return a QueryResult of WTParts that the given WTDocument describes. If the onlyOtherSides parameter is false, the QueryResult includes a set of WTPartDescribeLinks that have references to the WTParts.

Supported API: true

Specified by:
getDescribesWTParts in interface WTPartService
Parameters:
document -
onlyOtherSides -
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartDescribeLink, WTPart, WTDocument

getAlternatesWTPartMasters

public QueryResult getAlternatesWTPartMasters(WTPartMaster partMaster)
                                       throws WTException
Navigates WTPartAlternateLinks along the Alternates role.

Supported API: true

Specified by:
getAlternatesWTPartMasters in interface WTPartService
Parameters:
partMaster - WTPartMaster whose alternates are desired
Returns:
QueryResult of alternate WTPartMasters
Throws:
WTException
See Also:
WTPartAlternateLink, WTPartMaster

getAlternateForWTPartMasters

public QueryResult getAlternateForWTPartMasters(WTPartMaster partMaster)
                                         throws WTException
Navigates WTPartAlternateLinks along the Alternate For role.

Supported API: true

Specified by:
getAlternateForWTPartMasters in interface WTPartService
Parameters:
partMaster -
Returns:
QueryResult of WTPartMasters for which partMaster is an alternate
Throws:
WTException
See Also:
WTPartAlternateLink, WTPartMaster

isAnAlternateOf

public boolean isAnAlternateOf(WTPartMaster partMasterA,
                               WTPartMaster partMasterB)
                        throws WTException
Determines if argument A is an alternate of argument B

Supported API: true

Specified by:
isAnAlternateOf in interface WTPartService
Parameters:
partMasterA -
partMasterB -
Returns:
true if argument A is an alternate of argument B; false otherwise
Throws:
WTException

getSubstitutesWTPartMasters

public QueryResult getSubstitutesWTPartMasters(WTPartUsageLink usageLink)
                                        throws WTException
Navigates WTPartSubstituteLinks along the Substitutes role.

Supported API: true

Specified by:
getSubstitutesWTPartMasters in interface WTPartService
Parameters:
usageLink - WTPartUsageLink for which substitutes are desired
Returns:
QueryResult of substitute WTPartMasters
Throws:
WTException
See Also:
WTPartSubstituteLink, WTPartMaster

getSubstituteForWTPartUsageLinks

public QueryResult getSubstituteForWTPartUsageLinks(WTPartMaster partMaster)
                                             throws WTException
Navigates WTPartSubstituteLinks along the SubstituteFor role.

Supported API: true

Specified by:
getSubstituteForWTPartUsageLinks in interface WTPartService
Parameters:
partMaster -
Returns:
QueryResult of WTPartUsageLinks for which partMaster is a substitute part
Throws:
WTException
See Also:
WTPartSubstituteLink, WTPartMaster

findWTPartConfigSpec

public WTPartConfigSpec findWTPartConfigSpec()
                                      throws WTException
Returns the WTPartConfigSpec for the current principal. If one does not exist, a null value is returned.

Supported API: true

Specified by:
findWTPartConfigSpec in interface WTPartService
Returns:
WTPartConfigSpec
Throws:
WTException

saveWTPartConfigSpec

public WTPartConfigSpec saveWTPartConfigSpec(WTPartConfigSpec a_PartConfigSpec)
                                      throws WTException
Saves the WTPartConfigSpec for the current principal. If one already exists, it is modified by applying the current values. If the supplied value is null and the current principal has a stored config spec, it is deleted.

Supported API: true

Specified by:
saveWTPartConfigSpec in interface WTPartService
Parameters:
a_PartConfigSpec - The WTPartConfigSpec to save.
Returns:
WTPartConfigSpec
Throws:
WTException

getConsolidatedBOM

public QueryResult getConsolidatedBOM(WTPart part)
                               throws WTException
Deprecated.  

This method has been deprecated. The method to use instead is retrieveBomInformation.

Returns a QueryResult of WTPartUsageLinks for the given WTPart. The QueryResult will contain only one WTPartUsageLinks per WTPartMaster even if the WTPart uses a WTPartMaster more than once. The Quantity field represents the combined quantity for all the usages of a WTPartMaster in a WTPart.

Supported API: false

Specified by:
getConsolidatedBOM in interface WTPartService
Parameters:
part -
Returns:
QueryResult
Throws:
WTException
See Also:
WTPartMaster, WTPart, WTPartUsageLink, QueryResult

getBomDifferences

public QueryResult[] getBomDifferences(WTPart currentPart,
                                       WTPart previousPart)
                                throws WTException
Deprecated.  

This method has been deprecated. The proper method to call is retrieveBOMDifference.

Compares the bill of material of the current WTPart with a previous WTPart.

The element 0 of the returned array is a QueryResult that includes includes the WTPartUsageLinks to identify the WTPartMasters that were used in the current WTPart but not the previous WTPart - i.e., the part masters that have since been added to the current part. The quanitity has been consolidated.

The element 1 of the returned array is a QueryResult that includes includes the WTPartUsageLinks to identify the WTPartMasters that were used in the previous WTPart but not the current WTPart - i.e., the part masters that have since been deleted from the current part. The quanitity has been consolidated.

The element 2 of the returned array is a QueryResult that includes includes the WTPartUsageLinks to identify the WTPartMasters that were used in both the current and the previous WTParts but have different consolidated quantities.

Supported API: false

Specified by:
getBomDifferences in interface WTPartService
Parameters:
currentPart -
previousPart -
Returns:
QueryResult []
Throws:
WTException

setExportDate

public Timestamp setExportDate(WTPart part,
                               PartExportTarget target,
                               Timestamp timestamp)
                        throws WTException
Set the date that this part iteration was exported to another system - for example, an ERP system. It returns the updated WTPart.

Supported API: true

Specified by:
setExportDate in interface WTPartService
Parameters:
part - The part iteration being exported to another system.
target - The name of the target where the part was exported.
timestamp - A timestamp specifying when the part was exported to another system. If null, the export date is set to the current time and date.
Returns:
Timestamp
Throws:
WTException

getExportDate

public Timestamp getExportDate(WTPart part,
                               PartExportTarget target)
                        throws WTException
Get the date when this part iteration was exported to another system - for example, an ERP system. Returns null if version had never been exported to the given system.

Supported API: true

Specified by:
getExportDate in interface WTPartService
Parameters:
part - The part iteration that was exported to another system.
target - The name of the target where the part had been exported.
Returns:
Timestamp
Throws:
WTException

latestExport

public WTPart latestExport(WTPartMaster master,
                           PartExportTarget target)
                    throws WTException
Returns the most recently iteration of a part master that was exported to another system - for example, an ERP System. Returns null if no iterations were ever exported to the given system.

Supported API: true

Specified by:
latestExport in interface WTPartService
Parameters:
master - The part master.
target - The name of the target where the part had been exported.
Returns:
WTPart
Throws:
WTException

getUsesWTPartsFromLinks

private QueryResult getUsesWTPartsFromLinks(QueryResult partUsageLinks,
                                            WTPartConfigSpec configSpec)
                                     throws WTException
This method is useful when you have one part and several config specs and you want to use getUsesWTPartMasters to get the uses masters in one call and then use those masters to get the parts for each config spec.

Parameters:
partUsageLinks -
configSpec -
Returns:
QueryResult
Throws:
WTException

getMultilevelBomCompare

public void getMultilevelBomCompare(WTPartMaster part1,
                                    WTPartConfigSpec spec1,
                                    WTPartMaster part2,
                                    WTPartConfigSpec spec2,
                                    int maxDepth,
                                    MultilevelBomCompareVisitor aVisitor)
                             throws WTException,
                                    SAXException
Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions. The comparison will only go maxDepth levels deep. The result is a string of XML showing the differences and any product structure needed to show where the differences occurred. This method delegates much of its responsibility to getMultilevelBomDifferences. For customization this method uses a MultilevelBomCompareVisitor.

Supported API: true

Specified by:
getMultilevelBomCompare in interface WTPartService
Parameters:
part1 - The first part being compared. It will be compared to part2 using spec1 to navigate its part structure.
spec1 - The config spec being used to navigate the part structure of part1.
part2 - The second part being compared. It will be compared to part1 using spec2 to navigate its part structure.
spec2 - The config spec being used to navigate the part structure of part2.
maxDepth - The maximum number of levels down in the part structure to navigate as the comparison is done.
aVisitor - The visitor used to navigate the two product structures that are being compared. Customization of the data available for the report can be done by passing different visitors. MultilevelBomCompareVisitor is the reference implementation supplied out-of-the-box.
Throws:
WTException
SAXException
See Also:
MultilevelBomCompareVisitor

getMultilevelBomCompare

public void getMultilevelBomCompare(WTPartMaster part1,
                                    ConfigSpec spec1,
                                    WTPartMaster part2,
                                    ConfigSpec spec2,
                                    int maxDepth,
                                    MultilevelBomCompareVisitor aVisitor)
                             throws WTException,
                                    SAXException
Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions. The comparison will only go maxDepth levels deep. The result is a string of XML showing the differences and any product structure needed to show where the differences occurred. This method delegates much of its responsibility to getMultilevelBomDifferences. For customization this method uses a MultilevelBomCompareVisitor.

Supported API: true

Specified by:
getMultilevelBomCompare in interface WTPartService
Parameters:
part1 - The first part being compared. It will be compared to part2 using spec1 to navigate its part structure.
spec1 - The config spec being used to navigate the part structure of part1.
part2 - The second part being compared. It will be compared to part1 using spec2 to navigate its part structure.
spec2 - The config spec being used to navigate the part structure of part2.
maxDepth - The maximum number of levels down in the part structure to navigate as the comparison is done.
aVisitor - The visitor used to navigate the two product structures that are being compared. Customization of the data available for the report can be done by passing different visitors. MultilevelBomCompareVisitor is the reference implementation supplied out-of-the-box.
Throws:
WTException
SAXException

getMultilevelBomDifferences

protected void getMultilevelBomDifferences(WTPart part1,
                                           WTPartConfigSpec spec1,
                                           WTPart part2,
                                           WTPartConfigSpec spec2,
                                           int maxDepth,
                                           int currentDepth,
                                           MultilevelBomCompareVisitor aVisitor)
                                    throws WTException,
                                           SAXException
Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions. The comparison will only go maxDepth levels deep. The result is a string of XML showing the differences and any product structure needed to show where the differences occurred. For customization this method internally delegates its function to getMultilevelDifferences which uses a MultilevelBomCompareVisitor.

Supported API: false

Parameters:
part1 - The first part being compared. It will be compared to part2 using spec1 to navigate its part structure.
spec1 - The config spec being used to navigate the part structure of part1.
part2 - The second part being compared. It will be compared to part1 using spec2 to navigate its part structure.
spec2 - The config spec being used to navigate the part structure of part2.
maxDepth - The maximum number of levels down in the part structure to navigate as the comparison is done.
currentDepth - The current depth of product structure traversal which will be compared to maxDepth to determine if it is time to stop.
aVisitor - The visitor used to navigate the two product structures that are being compared. Customization of the data available for the report can be done by passing different visitors. MultilevelBomCompareVisitor is the reference implementation supplied out-of-the-box.
Throws:
WTException
SAXException
See Also:
MultilevelBomCompareVisitor

getMultilevelWhereUsed

public void getMultilevelWhereUsed(WTPart part,
                                   WTPartConfigSpec spec,
                                   Navigator navigator,
                                   MultilevelWhereUsedVisitor visitor)
                            throws WTException,
                                   WTPropertyVetoException
Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions. The comparison will only go maxDepth levels deep. The result is a string of XML showing the differences and any product structure needed to show where the differences occurred. For customization this method uses a MultilevelBomCompareVisitor.

Supported API: true

Specified by:
getMultilevelWhereUsed in interface WTPartService
Parameters:
part - The part whose usage is being reported.
spec - The spec used to navigate the product structures where this part may be used.
navigator - A navigator used to traverse up the product structure.
visitor - A visitor used for each node of the product structure.
Throws:
WTException
WTPropertyVetoException
See Also:
MultilevelBomCompareVisitor

getMultilevelWhereUsed

public void getMultilevelWhereUsed(WTPart part,
                                   Navigator navigator,
                                   MultilevelWhereUsedVisitor visitor)
                            throws WTException,
                                   WTPropertyVetoException
Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions. The comparison will only go maxDepth levels deep. The result is a string of XML showing the differences and any product structure needed to show where the differences occurred. For customization this method uses a MultilevelBomCompareVisitor.

Supported API: true

Specified by:
getMultilevelWhereUsed in interface WTPartService
Parameters:
part - The part whose usage is being reported.
navigator - A navigator used to traverse up the product structure.
visitor - A visitor used for each node of the product structure.
Throws:
WTException
WTPropertyVetoException
See Also:
MultilevelBomCompareVisitor

littlePut

public WTProductConfiguration littlePut(WTProductConfiguration productConfiguration,
                                        WTPart part)
                                 throws WTException


Supported API: false

Specified by:
littlePut in interface WTPartService
Parameters:
productConfiguration -
part -
Returns:
WTProductConfiguration
Throws:
WTException

littlePop

public WTProductConfiguration littlePop(WTProductConfiguration productConfiguration,
                                        Persistable startingNode,
                                        boolean repop,
                                        ConfigSpec configSpec)
                                 throws WTException


Supported API: false

Specified by:
littlePop in interface WTPartService
Parameters:
productConfiguration -
startingNode -
repop -
configSpec -
Returns:
WTProductConfiguration
Throws:
WTException

littleOver

public BaselineConfigurationOverride littleOver(WTProductConfiguration productConfiguration,
                                                PathOccurrence path,
                                                WTPart part)
                                         throws WTException


Supported API: false

Specified by:
littleOver in interface WTPartService
Parameters:
productConfiguration -
path -
part -
Returns:
BaselineConfigurationOverride
Throws:
WTException

littleReover

public BaselineConfigurationOverride littleReover(BaselineConfigurationOverride override,
                                                  WTPart newPart)
                                           throws WTException


Supported API: false

Specified by:
littleReover in interface WTPartService
Parameters:
override -
newPart -
Returns:
BaselineConfigurationOverride
Throws:
WTException

littleRemover

public WTProductConfiguration littleRemover(WTProductConfiguration productConfiguration,
                                            BaselineConfigurationOverride override)
                                     throws WTException


Supported API: false

Specified by:
littleRemover in interface WTPartService
Parameters:
productConfiguration -
override -
Returns:
WTProductConfiguration
Throws:
WTException

littleMap

public SerialNumberMapping littleMap(WTProductInstance2 productInstance,
                                     PathOccurrence path,
                                     WTProductInstanceMaster instanceToAllocate)
                              throws WTException


Supported API: false

Specified by:
littleMap in interface WTPartService
Parameters:
productInstance -
path -
instanceToAllocate -
Returns:
SerialNumberMapping
Throws:
WTException

littleMap

public SerialNumberMapping littleMap(WTProductInstance2 productInstance,
                                     PathOccurrence path,
                                     WTSerialNumberedPartInstance instanceToAllocate)
                              throws WTException


Supported API: false

Specified by:
littleMap in interface WTPartService
Parameters:
productInstance -
path -
instanceToAllocate -
Returns:
SerialNumberMapping
Throws:
WTException

littleRemap

public SerialNumberMapping littleRemap(SerialNumberMapping mapping,
                                       WTProductInstanceMaster newInstance)
                                throws WTException


Supported API: false

Specified by:
littleRemap in interface WTPartService
Parameters:
mapping -
newInstance -
Returns:
SerialNumberMapping
Throws:
WTException

littleRemap

public SerialNumberMapping littleRemap(SerialNumberMapping mapping,
                                       WTSerialNumberedPartInstance newInstance)
                                throws WTException


Supported API: false

Specified by:
littleRemap in interface WTPartService
Parameters:
mapping -
newInstance -
Returns:
SerialNumberMapping
Throws:
WTException

littleUnmap

public WTProductInstance2 littleUnmap(WTProductInstance2 productInstance,
                                      SerialNumberMapping mapping)
                               throws WTException


Supported API: false

Specified by:
littleUnmap in interface WTPartService
Parameters:
productInstance -
mapping -
Returns:
WTProductInstance2
Throws:
WTException

littleChange

public WTProductInstance2 littleChange(WTProductInstance2 productInstance,
                                       WTProductConfiguration productConfiguration)
                                throws WTException


Supported API: false

Specified by:
littleChange in interface WTPartService
Parameters:
productInstance -
productConfiguration -
Returns:
WTProductInstance2
Throws:
WTException

getPartUsesOccurrences

public Vector getPartUsesOccurrences(Vector links)
                              throws WTException


Supported API: false

Specified by:
getPartUsesOccurrences in interface WTPartService
Parameters:
links -
Returns:
Vector
Throws:
WTException

copyWTProductConfiguration

public WTProductConfiguration copyWTProductConfiguration(WTProductConfiguration configuration,
                                                         String newConfigurationName)
                                                  throws WTException


Supported API: false

Specified by:
copyWTProductConfiguration in interface WTPartService
Parameters:
configuration -
newConfigurationName -
Returns:
WTProductConfiguration
Throws:
WTException

copyWTProductInstance2

public WTProductInstance2 copyWTProductInstance2(WTProductInstance2 baseInstance)
                                          throws WTException


Supported API: false

Specified by:
copyWTProductInstance2 in interface WTPartService
Parameters:
baseInstance -
Returns:
WTProductInstance2
Throws:
WTException

saveWTProductInstance2Copy

public WTProductInstance2 saveWTProductInstance2Copy(WTProductInstance2 baseInstance,
                                                     WTProductInstance2 newInstance)
                                              throws WTException


Supported API: false

Specified by:
saveWTProductInstance2Copy in interface WTPartService
Parameters:
baseInstance -
newInstance -
Returns:
WTProductInstance2
Throws:
WTException

retrieveBomInformation

public Enumeration retrieveBomInformation(WTPart part)
                                   throws LineNumberUsageException,
                                          WTException
Returns an Enumeration of PartUsageInfo objects given a WTPart. If line numbers are not used, the quantities for the used parts are consolidated.

Supported API: false

Specified by:
retrieveBomInformation in interface WTPartService
Parameters:
part -
Returns:
Enumeration
Throws:
LineNumberUsageException
WTException

retrieveBomDifferences

public Enumeration[] retrieveBomDifferences(WTPart currentPart,
                                            WTPart previousPart)
                                     throws LineNumberUsageException,
                                            WTException
Compares the bill of material of the current WTPart with a previous WTPart.

Element 0 of the returned array is an Enumeration of PartUsageInfo objects which identify the WTPartMaster usages that apply for the current WTPart but not the previous WTPart - i.e., the part master usages that have since been added to the current part. The quanitity are consolidated if line numbers are not used.

Element 1 of the returned array is an Enumeration of PartUsageInfo objects which identify the WTPartMaster usages that apply for the previous WTPart but not the current WTPart - i.e., the part master usages that have since been removed from the current part. The quanitity are consolidated if line numbers are not used.

Element 2 of the returned array is an Enumeration of PartUsageInfo objects which identify the usages that have had quantity changes or reference designator changes given the current WTPart and the previous WTPart. The quanitity are consolidated if line numbers are not used.

Element 3 of the returned array is an Enumeration of PartUsageInfo objects which identify the usages that have not changed given the current WTPart and the previous WTPart. The quanitity are consolidated if line numbers are not used.

Supported API: false

Specified by:
retrieveBomDifferences in interface WTPartService
Parameters:
currentPart -
previousPart -
Returns:
Enumeration []
Throws:
LineNumberUsageException
WTException

retrieveBomInformation

public Enumeration retrieveBomInformation(WTPart part,
                                          boolean ignoreLineNumbers)
                                   throws LineNumberUsageException,
                                          WTException
Returns an Enumeration of PartUsageInfo objects given a WTPart. If line numbers are not used or are to be ignored, the quantities for the used parts are consolidated.

Supported API: false

Specified by:
retrieveBomInformation in interface WTPartService
Parameters:
part -
ignoreLineNumbers - If ignoreLineNumber is true, line numbers are ignored and quantities are consolidated.
Returns:
Enumeration
Throws:
LineNumberUsageException
WTException

retrieveBomDifferences

public Enumeration[] retrieveBomDifferences(WTPart currentPart,
                                            WTPart previousPart,
                                            boolean ignoreLineNumbers)
                                     throws LineNumberUsageException,
                                            WTException
Compares the bill of material of the current WTPart with a previous WTPart.

Element 0 of the returned array is an Enumeration of PartUsageInfo objects which identify the WTPartMaster usages that apply for the current WTPart but not the previous WTPart - i.e., the part master usages that have since been added to the current part. The quanitity are consolidated if line numbers are not used or are to be ignored.

Element 1 of the returned array is an Enumeration of PartUsageInfo objects which identify the WTPartMaster usages that apply for the previous WTPart but not the current WTPart - i.e., the part master usages that have since been removed from the current part. The quanitity are consolidated if line numbers are not used or are to be ignored.

Element 2 of the returned array is an Enumeration of PartUsageInfo objects which identify the usages that have had quantity changes or reference designator changes given the current WTPart and the previous WTPart. The quanitity are consolidated if line numbers are not used or are to be ignored.

Element 3 of the returned array is an Enumeration of PartUsageInfo objects which identify the usages that have not changed given the current WTPart and the previous WTPart. The quanitity are consolidated if line numbers are not used.

Supported API: false

Specified by:
retrieveBomDifferences in interface WTPartService
Parameters:
currentPart -
previousPart -
ignoreLineNumbers -
Returns:
Enumeration []
Throws:
LineNumberUsageException
WTException

changeWTPartMasterIdentity

public WTPartMaster changeWTPartMasterIdentity(WTPartMaster part_master,
                                               String name,
                                               String number,
                                               WTOrganization org)
                                        throws WTException,
                                               WTPropertyVetoException,
                                               UniquenessException
Change the identity of Part Master with the new name, number and organization.

Supported API: false

Specified by:
changeWTPartMasterIdentity in interface WTPartService
Parameters:
part_master -
name -
number -
org -
Returns:
WTPartMaster
Throws:
WTException
WTPropertyVetoException
UniquenessException

getApplicationContext

public ApplicationContext getApplicationContext()
Gets the object for the association that plays role: applicationContext.

Supported API: false

Specified by:
getApplicationContext in interface ApplicationContextChild
Returns:
ApplicationContext

setApplicationContext

public void setApplicationContext(ApplicationContext a_ApplicationContext)
                           throws WTPropertyVetoException
Sets the object for the association that plays role: applicationContext.

Supported API: false

Specified by:
setApplicationContext in interface ApplicationContextChild
Parameters:
a_ApplicationContext -
Throws:
WTPropertyVetoException

navigateUses

protected WTKeyedMap navigateUses(WTCollection parts)
                           throws WTException
Navigate the uses role on an entire collection of parts all at once.

Returns:
Map where keys are parts and values are WTLists containing WTPartUsageLinks
Throws:
WTException

getMasters

protected WTSet getMasters(WTKeyedMap map)
                    throws WTException
Returns a set of unique master objects from the input map that maps parts to their associated usage links.

Throws:
WTException

filteredIterationsKeyedByMaster

protected WTValuedMap filteredIterationsKeyedByMaster(WTCollection masters,
                                                      ConfigSpec configSpec)
                                               throws WTException
Applys a config spec to the masters and returns a map where the keys are the masters from the input and values are the iterations selected by the config spec.

Throws:
WTException

createUsages

protected Persistable[][] createUsages(WTCollection links,
                                       WTValuedMap masterPartMap)
                                throws WTException
Processes the input collection of usage links and creates a Persistable[2] for each one where [0] is the usage link and [1] is the part or part master as found in the input master->parts map.

Returns:
A list of Persistable[2] arrays where [0] is the WTPartUsageLink and [1] is the WTPart or WTPartMaster
Throws:
WTException

copyWTPartSubstituteLinks

protected void copyWTPartSubstituteLinks(WTCollection partUsageLinks,
                                         WTKeyedMap evtMap)
                                  throws WTException
Throws:
WTException

checkConfigSpecReference

protected void checkConfigSpecReference(String referenceAttributeName,
                                        WTCollection coll)
                                 throws WTException
Throws:
WTException

deleteRelatedUsesOccurrences

protected void deleteRelatedUsesOccurrences(WTCollection coll)
                                     throws WTException
Throws:
WTException

consolidateUsageLinks

private Hashtable consolidateUsageLinks(QueryResult usageLinks)
                                 throws WTException
Throws:
WTException

consolidateBOM

private QueryResult consolidateBOM(QueryResult bom)
                            throws WTException
Consolidate a BOM by combining usage links with the same target into consolidated links with added quantities.

The input BOM consist of rows of Persistable[2], where the first element contains the WTPartUsageLink and the second element contains the WTPart being used.

This method is used by multi level BOM compare methods.

TODO: refactor this with methods consolidateUsageLinks and getConsolidatedBOM into a single method

Parameters:
bom - the unconsolidated BOM
Returns:
a query result containing the consolidated BOM entries
Throws:
WTException

addOccurrenceData

private QueryResult addOccurrenceData(QueryResult original,
                                      PathOccurrenceContext context,
                                      Class occurrenceDataClass)
                               throws WTException
Throws:
WTException

occurrencePathsMayExist

private boolean occurrencePathsMayExist(PartPathOccurrence path)

getConfigSpec

private ConfigSpec getConfigSpec(WTProductConfiguration productConfiguration)
                          throws WTException
Throws:
WTException

getConfigSpec

private ConfigSpec getConfigSpec(WTProductInstance2 productInstance)
                          throws WTException
Throws:
WTException

assignDomain

private void assignDomain(Persistable p)
                   throws WTException
Throws:
WTException

assignConfiguration

private void assignConfiguration(WTSerialNumberedPartInstance instance)
                          throws WTException
Throws:
WTException

assignContainerDefaultDomain

private void assignContainerDefaultDomain(Persistable p)
                                   throws WTException
Throws:
WTException

refreshPathOccurrenceContextVersion

private PathOccurrenceContext refreshPathOccurrenceContextVersion(PathOccurrenceContext poc)
                                                           throws WTException
Throws:
WTException

refreshPathOccurrenceData

private PathOccurrenceData refreshPathOccurrenceData(PathOccurrenceContext poc,
                                                     PathOccurrenceData pod)
                                              throws WTException
Throws:
WTException

copyIBAValues

private void copyIBAValues(IBAHolder original,
                           IBAHolder copy)
                    throws WTException
Throws:
WTException

intFindWTPartConfigSpec

protected WTPartConfigSpec intFindWTPartConfigSpec()
                                            throws WTException
Throws:
WTException

getOrStoreSNPI

protected WTSerialNumberedPartInstance getOrStoreSNPI(WTSerialNumberedPartInstance snpi)
                                               throws WTException
Throws:
WTException

intLittleSNPIMap

protected SerialNumberMapping intLittleSNPIMap(WTProductInstance2 productInstance,
                                               PathOccurrence path,
                                               WTSerialNumberedPartInstance instanceToAllocate)
                                        throws WTException
Throws:
WTException

intLittleSNPIRemap

public SerialNumberMapping intLittleSNPIRemap(SerialNumberMapping mapping,
                                              WTSerialNumberedPartInstance newInstance)
                                       throws WTException
Throws:
WTException

getMultilevelBomDifferences

protected void getMultilevelBomDifferences(WTPart part1,
                                           WTProductInstance2 productInstance1,
                                           SerialNumberedConfiguredInstanceConfigSpec spec1,
                                           WTPart part2,
                                           WTProductInstance2 productInstance2,
                                           SerialNumberedConfiguredInstanceConfigSpec spec2,
                                           PartPathOccurrence path,
                                           int maxDepth,
                                           int currentDepth,
                                           MultilevelBomCompareVisitor aVisitor)
                                    throws WTException,
                                           SAXException
Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions. The comparison will only go maxDepth levels deep. The result is a string of XML showing the differences and any product structure needed to show where the differences occurred. For customization this method internally delegates its function to getMultilevelDifferences which uses a MultilevelBomCompareVisitor.

Supported API: false

Parameters:
part1 - The first part being compared. It will be compared to part2 using spec1 to navigate its part structure.
productInstance1 - The product instance being used to navigate the part structure of part1.
spec1 -
part2 - The second part being compared. It will be compared to part1 using spec2 to navigate its part structure.
productInstance2 - The product instance being used to navigate the part structure of part2.
spec2 -
path -
maxDepth - The maximum number of levels down in the part structure to navigate as the comparison is done.
currentDepth - The current depth of product structure traversal which will be compared to maxDepth to determine if it is time to stop.
aVisitor - The visitor used to navigate the two product structures that are being compared. Customization of the data available for the report can be done by passing different visitors. MultilevelBomCompareVisitor is the reference implementation supplied out-of-the-box.
Throws:
WTException
SAXException
See Also:
MultilevelBomCompareVisitor

getMultilevelBomDifferences

protected void getMultilevelBomDifferences(WTPart part1,
                                           WTProductConfiguration productConfiguration1,
                                           WTPart part2,
                                           WTProductConfiguration productConfiguration2,
                                           PartPathOccurrence path,
                                           int maxDepth,
                                           int currentDepth,
                                           MultilevelBomCompareVisitor aVisitor)
                                    throws WTException,
                                           SAXException
Recursively compares parts used by part1 and part2 using config specs 1 and 2 to select the part versions. The comparison will only go maxDepth levels deep. The result is a string of XML showing the differences and any product structure needed to show where the differences occurred. For customization this method internally delegates its function to getMultilevelDifferences which uses a MultilevelBomCompareVisitor.

Supported API: false

Parameters:
part1 - The first part being compared. It will be compared to part2 using spec1 to navigate its part structure.
productConfiguration1 - The product instance being used to navigate the part structure of part1.
part2 - The second part being compared. It will be compared to part1 using spec2 to navigate its part structure.
productConfiguration2 - The product instance being used to navigate the part structure of part2.
path -
maxDepth - The maximum number of levels down in the part structure to navigate as the comparison is done.
currentDepth - The current depth of product structure traversal which will be compared to maxDepth to determine if it is time to stop.
aVisitor - The visitor used to navigate the two product structures that are being compared. Customization of the data available for the report can be done by passing different visitors. MultilevelBomCompareVisitor is the reference implementation supplied out-of-the-box.
Throws:
WTException
SAXException
See Also:
MultilevelBomCompareVisitor

getUsesWTPartsFromLinks

private QueryResult getUsesWTPartsFromLinks(QueryResult partUsageLinks,
                                            ConfigSpec configSpec)
                                     throws WTException
This method is useful when you have one part and several config specs and you want to use getUsesWTPartMasters to get the uses masters in one call and then use those masters to get the parts for each config spec.

Parameters:
partUsageLinks -
configSpec -
Returns:
QueryResult
Throws:
WTException

getMultilevelBomDifferences

protected void getMultilevelBomDifferences(WTPart part1,
                                           BaselineConfigurationConfigSpec spec1,
                                           WTPart part2,
                                           BaselineConfigurationConfigSpec spec2,
                                           PartPathOccurrence path,
                                           int maxDepth,
                                           int currentDepth,
                                           MultilevelBomCompareVisitor aVisitor)
                                    throws WTException,
                                           SAXException
Throws:
WTException
SAXException

getSeparateUsesWTPartsWithOccurrences

public QueryResult getSeparateUsesWTPartsWithOccurrences(QueryResult initialResult)
                                                  throws WTException
Throws:
WTException

getSeparateUsesWTPartsWithOccurrences

public QueryResult getSeparateUsesWTPartsWithOccurrences(QueryResult initialResult,
                                                         WTProductInstance2 currentInstance,
                                                         SerialNumberedConfiguredInstanceConfigSpec configSpec)
                                                  throws WTException
Throws:
WTException

checkReflexive

protected void checkReflexive(ObjectToObjectLink link)
                       throws WTException
Throws:
WTException

filterOriginalCopiesInBuildRules

protected static QueryResult filterOriginalCopiesInBuildRules(WTPart sourcePart,
                                                              QueryResult buildRuleLinks)
Outputs the given Describes Documents. This method outputs the String to display in the product structure hierarchy as well as the hidden field containing the data of the part displayed. This method will also add the part data to the cache.


getOtherSideObject

protected static WTObject getOtherSideObject(Object link,
                                             Persistable persistableObj)
Gets the Other Side Object if the link Object is a BinaryLink; otherwise it just returns null.