com.ptc.windchill.esi.bom
Class BOMRendererImpl

java.lang.Object
  extended by com.ptc.windchill.esi.rnd.ResponseRendererImpl
      extended by com.ptc.windchill.esi.bom.BOMRendererImpl
All Implemented Interfaces:
BOMRenderer, ResponseRenderer, Serializable

public class BOMRendererImpl
extends ResponseRendererImpl
implements BOMRenderer, Serializable

This class is the default implementation of BOMRenderer.

Supported API: true

Extendable: true

See Also:
Serialized Form

Nested Class Summary
protected  class com.ptc.windchill.esi.bom.BOMRendererImpl.BomDiffResult
           
protected  class com.ptc.windchill.esi.bom.BOMRendererImpl.PreviousExportedIterationKey
           
 
Method Summary
protected  void buildGroups()
          Builds the renderer output.
protected  String getAdapterName()
          Gets the value of the attribute: adapterName; The name of the Windchill Adapter to use when obtaining information from Windchill.
protected  String getAuthentication()
          Gets the value of the attribute: authentication; Authentication information to use when using the Windchill Adapter for obtaining information.
protected  String getConfigspec()
          Gets the value of the attribute: configspec; The Config Spec.
protected  int getMultilevel()
          Gets the value of the attribute: multilevel; How many levels are we to traverse when extracting multi-level BOMs?

Supported API: true
protected  String getObid()
          Gets the value of the attribute: obid; The UFID of the Windchill assembly part to be rendered.
protected  Integer getTransactionID()
          Gets the value of the attribute: transactionID; The number of an ESI transaction.
protected  boolean isAlternates()
          Gets the value of the attribute: alternates; If parts = true, should the output also include the alternates of the parts?

Supported API: true
protected  boolean isBomPart()
          Gets the value of the attribute: bomPart; Should a part be created for the BOM?

Supported API: true
protected  boolean isComponentParts()
          Gets the value of the attribute: componentParts; Should parts be created for the BOM's components?

Supported API: true
protected  boolean isDelta()
          Gets the value of the attribute: delta; Should the output contain only items that have changed since the last time an object was released?

Supported API: true
protected  boolean isDocuments()
          Gets the value of the attribute: documents; Are documents to be included in the output?

Supported API: true
protected  boolean isLineNumbers()
          Gets the value of the attribute: lineNumbers; Are line numbers to be included in the output?

Supported API: true
protected  boolean isReferenceDesignators()
          Gets the value of the attribute: referenceDesignators; Are reference designators to be included in the output?

Supported API: true
protected  boolean isSubstitutes()
          Gets the value of the attribute: substitutes; Are substitutes to be included in the output?

Supported API: true
 void setConfigspec(String a_Configspec)
          Sets the value of the attribute: configspec; The Config Spec.
 void setData(String obid, boolean provideDelta, boolean buildBOMPart, boolean buildComponentParts, boolean buildAlternates, boolean buildSubs, boolean buildRefDes, boolean useLineNumbers, String multiLevel, boolean buildDocs, String configSpec, String auth, String wcAdapter, String transactionID)
          Provide the data required to render a BOM.
 void setDocuments(boolean a_Documents)
          Sets the value of the attribute: documents; Are documents to be included in the output?

Supported API: true
protected  void validate()
          Make sure that obid is not null.
 
Methods inherited from class com.ptc.windchill.esi.rnd.ResponseRendererImpl
adjustEffectivities, adjustObjectID, adjustTargets, buildUfidString, getBuilder, invokeQueryTask, mapElement, mapObject, render, setBuilder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.ptc.windchill.esi.rnd.ResponseRenderer
render
 

Method Detail

getObid

protected String getObid()
Gets the value of the attribute: obid; The UFID of the Windchill assembly part to be rendered.

Supported API: true

Returns:
String

isDelta

protected boolean isDelta()
Gets the value of the attribute: delta; Should the output contain only items that have changed since the last time an object was released?

Supported API: true

Returns:
boolean

isBomPart

protected boolean isBomPart()
Gets the value of the attribute: bomPart; Should a part be created for the BOM?

Supported API: true

Returns:
boolean

isComponentParts

protected boolean isComponentParts()
Gets the value of the attribute: componentParts; Should parts be created for the BOM's components?

Supported API: true

Returns:
boolean

isAlternates

protected boolean isAlternates()
Gets the value of the attribute: alternates; If parts = true, should the output also include the alternates of the parts?

Supported API: true

Returns:
boolean

isSubstitutes

protected boolean isSubstitutes()
Gets the value of the attribute: substitutes; Are substitutes to be included in the output?

Supported API: true

Returns:
boolean

isReferenceDesignators

protected boolean isReferenceDesignators()
Gets the value of the attribute: referenceDesignators; Are reference designators to be included in the output?

Supported API: true

Returns:
boolean

isLineNumbers

protected boolean isLineNumbers()
Gets the value of the attribute: lineNumbers; Are line numbers to be included in the output?

Supported API: true

Returns:
boolean

getMultilevel

protected int getMultilevel()
Gets the value of the attribute: multilevel; How many levels are we to traverse when extracting multi-level BOMs?

Supported API: true

Returns:
int

isDocuments

protected boolean isDocuments()
Gets the value of the attribute: documents; Are documents to be included in the output?

Supported API: true

Returns:
boolean

setDocuments

public void setDocuments(boolean a_Documents)
                  throws WTPropertyVetoException
Sets the value of the attribute: documents; Are documents to be included in the output?

Supported API: true

Parameters:
a_Documents -
Throws:
WTPropertyVetoException

getConfigspec

protected String getConfigspec()
Gets the value of the attribute: configspec; The Config Spec. value to use when navigating the BOM. See the Query-Tree Webject documentation for acceptable and default values.

Supported API: true

Returns:
String

setConfigspec

public void setConfigspec(String a_Configspec)
                   throws WTPropertyVetoException
Sets the value of the attribute: configspec; The Config Spec. value to use when navigating the BOM. See the Query-Tree Webject documentation for acceptable and default values.

Supported API: true

Parameters:
a_Configspec -
Throws:
WTPropertyVetoException

getAuthentication

protected String getAuthentication()
Gets the value of the attribute: authentication; Authentication information to use when using the Windchill Adapter for obtaining information.

Supported API: true

Returns:
String

getAdapterName

protected String getAdapterName()
Gets the value of the attribute: adapterName; The name of the Windchill Adapter to use when obtaining information from Windchill.

Supported API: true

Returns:
String

getTransactionID

protected Integer getTransactionID()
Gets the value of the attribute: transactionID; The number of an ESI transaction.

Supported API: true

Returns:
Integer

setData

public void setData(String obid,
                    boolean provideDelta,
                    boolean buildBOMPart,
                    boolean buildComponentParts,
                    boolean buildAlternates,
                    boolean buildSubs,
                    boolean buildRefDes,
                    boolean useLineNumbers,
                    String multiLevel,
                    boolean buildDocs,
                    String configSpec,
                    String auth,
                    String wcAdapter,
                    String transactionID)
             throws WTException
Provide the data required to render a BOM.

Supported API: true

Specified by:
setData in interface BOMRenderer
Parameters:
obid - The UFID of the Windchill assembly part to be rendered.
provideDelta - Should the output contain only items that have changed since the last time an object was released?
buildBOMPart - Should a part be created for the BOM?
buildComponentParts - Should parts be created for the BOM's components?
buildAlternates - If buildParts = true, should the output also include the alternates of the parts?
buildSubs - Are substitutes to be included in the output?
buildRefDes - Are reference designators to be included in the output?
useLineNumbers - Are line numbers to be included in the output?
multiLevel - How many levels are we to traverse when extracting multi-level BOMs?
buildDocs - Are documents to be included in the output?
configSpec - The Config Spec. value to use when navigating the BOM. See the Query-Tree Webject documentation for acceptable and default values.
auth - Authentication information to use when using the Windchill Adapter for obtaining information.
wcAdapter - The name of the Windchill Adapter to use when obtaining information from Windchill.
transactionID - The number of an ESI transaction.
Throws:
WTException

validate

protected void validate()
                 throws com.ptc.windchill.esi.rnd.ESIRendererException
Make sure that obid is not null.

Supported API: true

Throws:
com.ptc.windchill.esi.rnd.ESIRendererException

buildGroups

protected void buildGroups()
                    throws com.ptc.windchill.esi.rnd.ESIRendererException
Builds the renderer output. Does the following:
  1. Obtains the list of parts to be rendered. Uses the services of a BOMTreeNavigator if multilevel > 1.
  2. For each part obtained:
    • Finds the last previous released version of the part for each target.
    • For each previous version : current version pair, obtains the difference from the StandardWTPartService. If there is no previous version, the entire part structure is returned.
    • Calls the BOM header renderer.
    • Calls the BOM component renderer.
    • Optionally calls the substiture renderer.
    • Optionally calls the reference designator renderer
    • Calls adjustElement().
  3. If parts are requested, calls ESIPartUtility.getPart() to render the parts on the BOM.


Supported API: true

Specified by:
buildGroups in class ResponseRendererImpl
Throws:
com.ptc.windchill.esi.rnd.ESIRendererException