wt.vc.struct
Class StandardStructService

java.lang.Object
  extended bywt.services.StandardManager
      extended bywt.vc.struct.StandardStructService
All Implemented Interfaces:
Manager, NetFactor, Serializable, StructService

public class StandardStructService
extends StandardManager
implements StructService, Serializable

This implementation of StructService has adds several listeners in performStartupProcess() that deal primarily with copying links and validating deletes.

Use the newStandardStructService static factory method(s), not the StandardStructService 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

Nested Class Summary
private  class StandardStructService.LinkRow
           
private  class StandardStructService.LinkRowSet
           
private  class StandardStructService.ProjectTerminalConfigSpec
          Navigates should not return terminal iterations (unless we're starting from one) or project versions (unless we're starting from one, in which case we want to return only those in the same project).
private  class StandardStructService.SandboxCheckinListener
          Don't allow a sandbox checkin (to PDM) if the result is that the usedBy, referencedBy, or describes object uses, references, or is describedBy object(s) that are still in the sandbox (where, in all cases, we mean that the object has no PDM versions).
 
Field Summary
private static ArrayList ALL_ITERATED_CLASSES
           
private static String CLASSNAME
           
private static ArrayList CONTAINED_AND_WORKABLE_LIST
           
private static ArrayList CONTAINED_LIST
           
private static ArrayList EXCLUDE_ITERATED_DESCRIBE_LINK_CLASSES
           
private static ArrayList EXCLUDE_ITERATED_USAGE_LINK_CLASSES
           
private static ArrayList INVALID_NON_WORKABLE_DESCRIBES_CLASSES
           
private static ArrayList INVALID_REFERENCES_CLASSES
           
private static ArrayList INVALID_USES_CLASSES
           
private static ArrayList INVALID_WORKABLE_DESCRIBES_CLASSES
           
private static boolean MULTI_OBJECT_VERBOSE
           
private static boolean PROJECTLINK_INSTALLED
           
private static String RESOURCE
           
private static String SANDBOX_CHECKIN_KEY
          The sandbox checkin adds an annoying wrinkle to how links are copied.
static Object SANDBOX_CHECKIN_LISTENER_KEY
           
private static ArrayList WORKABLE_LIST
           
 
Fields inherited from class wt.services.StandardManager
 
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
StandardStructService()
           
 
Method Summary
private  WTKeyedMap addCopyLinkEntry(WTKeyedMap predecessorToLinksMap, StandardStructService.LinkRowSet a_rowSet, int SIZE)
           
protected  void addTerminalWhereStatementToBasicNavigateReferencedByOrUsedByQuerySpec(QuerySpec querySpec, Class byBaseClass)
           
protected  QuerySpec buildBasicNavigateReferencedByOrUsedByQuerySpec(Mastered master, Class byBaseClass, Class linkClass, boolean onlyOtherSide)
           
private  void copyLinksForCheckout(WTKeyedMap originalWorkingCopyMap)
           
protected  void copyLinksForNewCopy(RevisionControlled original, RevisionControlled copy, CopyRules copy_rules)
           
protected  void copyLinksForNewIterations(WTCollection targets)
           
protected  void copyLinksForSandbox(Map versionRefMap)
          Copies the links from original version to new version.
protected  QueryResult copyLinksForSandboxGetLinks(boolean includeWorkable, long[] oids)
          Gets the appropriate links to copy for the given oids.
private  void deleteLinksForPurge(WTCollection targets)
           
private  void deleteWithInQuery(WTCollection c, Class a_class)
           
private  void doProjectLinkValidations(WTCollection linksCollection)
           
private  void doReflexiveValidation(WTCollection links)
           
private  void filterNonLatestOtherSideObjects(Map resultMap, WTCollection targetsCollection)
           
private  WTKeyedMap filterOtherSideRoleObjects(Map iterationsToOtherSideObjectsMap, String role, boolean onlyOtherSide)
          If an iteration key is the latest iteration filter out any other side objects that are not latest iterations.
private  WTList formatOriginalCopies(WTList describedByLatestIterations)
           
private  CompositeWhereExpression getCompositeWhereExpression(List whereExpressions, LogicalOperator op)
           
 String getConceptualClassname()
          Deprecated.  
private  QuerySpec getCopyLinksForNewIterationQuerySpec(Class linkClass, long[] ids)
           
private  WTValuedMap getDescribeLinksToCopyForNewDescribedByRoleObjectIteration(WTValuedMap predecessorsToTargetsMap, WTValuedMap copyLinkMap, WTKeyedMap predecessorsToDescribedLinkListMap)
           
private  WTValuedMap getDescribeLinksToCopyForNewDescribesRoleObjectIteration(WTValuedMap predecessorsToTargetsMap, WTValuedMap copyLinkMap, WTKeyedMap predecessorsToDescribedLinkListMap)
           
private  WTCollection getIterationsCollection(WTCollection linkCollection)
           
private  WTKeyedMap getIterationsToLinksMap(WTKeyedMap iterationsToOtherSideObjectsMap, String otherSideRole, WTKeyedMap navigateResultMap)
          Given a WTKeyedMap of iterations to other side objects return a WTKeyedMap relating iterations to links.
private  WTCollection getOidsFromMap(WTValuedMap m)
           
private  WTCollection getOtherDescribeLinks(WTList describedByLatestIterations, Iterator describeLinksIter)
           
private  Map getOtherSideSandboxObjects(WTCollection describedBys)
           
private  WTValuedMap getPredecessors(WTCollection targets)
           
private  List getRoles(WTCollection links)
           
private  StatementSpec getStatementSpec(List querySpecs, SetOperator operator)
           
private  void handleDescribeLinks(WTCollection describeLinks, boolean checkForReflexive)
           
private  boolean hasLinkTypesToValidate(WTCollection objectToObjectLinkColl)
           
private  WTKeyedMap inflateLinksAndRoleObjects(Map a_sourceObjectsToLinksMap)
           
private  WTCollection inflateLinksAndRoleObjects(WTCollection c)
           
private  void initializeValidateLinkAction(Object event)
           
private  void insertDuplicateLinks(WTCollection describeLinks, WTList describedByLatestIterations)
           
private  void insertSandboxLinkDuplicates(WTCollection originalDescribedBys, WTCollection describeLinks)
           
private  boolean isCheckedOutToSandbox(Iterated iterated)
           
private  boolean isNotCheckedIn(Iterated iterated)
           
protected  QueryResult latestDescribe(Iterated iteration, QueryResult qr)
          This method goes through the given query result, processes the multiple latest config spec on the result and applies access control.
protected  WTKeyedMap latestDescribes(Map navigateResultMap, String role, boolean onlyOtherSide)
          Filter iterations.
private  WTKeyedMap navigate(WTCollection iterations, Class iteratedDescribeLinkClass, boolean onlyOtherSide, String role)
           
 QueryResult navigateDescribedBy(Iterated iteration)
          Deprecated.  
 QueryResult navigateDescribedBy(Iterated iteration, boolean onlyOtherSide)
          Deprecated.  
 QueryResult navigateDescribedBy(Iterated iteration, Class iteratedDescribeLinkClass, boolean onlyOtherSide)
          Deprecated.  
 WTKeyedMap navigateDescribedBys(WTCollection iterations)
          Navigates the describedBy roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of other side objects per iteration, i.e.
 WTKeyedMap navigateDescribedBys(WTCollection iterations, boolean onlyOtherSide)
          Navigates the describedBy roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of links or other side objects per iteration, i.e.
 WTKeyedMap navigateDescribedBys(WTCollection iterations, Class iteratedDescribeLinkClass, boolean onlyOtherSide)
          Navigates the describedBy roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of links or other side objects per iteration, i.e.
 QueryResult navigateDescribes(Iterated iteration)
          Deprecated.  
 QueryResult navigateDescribes(Iterated iteration, boolean onlyOtherSide)
          Deprecated.  
 QueryResult navigateDescribes(Iterated iteration, Class iteratedDescribeLinkClass, boolean onlyOtherSide)
          Deprecated.  
 WTKeyedMap navigateDescribes(WTCollection iterations)
          Navigates the describes roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of other side objects per iteration, i.e.
 WTKeyedMap navigateDescribes(WTCollection iterations, boolean onlyOtherSide)
          Navigates the describes roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of links or other side objects per iteration, i.e.
 WTKeyedMap navigateDescribes(WTCollection iterations, Class iteratedDescribeLinkClass, boolean onlyOtherSide)
          Navigates the describes roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of links or other side objects per iteration, i.e.
 QueryResult navigateReferencedBy(Mastered master)
          Navigates the referencedBy role of the IteratedReferenceLink, returning a QueryResult of latest iterations.
 QueryResult navigateReferencedBy(Mastered master, boolean onlyOtherSide)
          Navigates the referencedBy role of the IteratedReferenceLink, returning a QueryResult of IteratedReferenceLinks if the value of onlyOtherSide is "false or iterations if the value is "true".
 QueryResult navigateReferencedBy(Mastered master, Class iteratedReferenceLinkClass, boolean onlyOtherSide)
          Navigates the referencedBy role of the IteratedReferenceLink, returning a QueryResult of IteratedReferenceLinks if the value of onlyOtherSide is "false or iterations if the value is "true".
protected  QueryResult navigateReferencedByOrUsedBy(Mastered master, Class linkClass, boolean onlyOtherSide)
           
 QueryResult navigateReferences(Iterated iteration)
          Navigates the references role of the IteratedReferenceLink, returning a QueryResult of masters.
 QueryResult navigateReferences(Iterated iteration, boolean onlyOtherSide)
          Navigates the references role of the IteratedReferenceLink, returning a QueryResult of IteratedReferenceLinks if the value of onlyOtherSide is "false" or iterations if the value is "true".
 QueryResult navigateReferences(Iterated iteration, Class iteratedReferenceLinkClass, boolean onlyOtherSide)
          Navigates the references role of the IteratedReferenceLink, returning a QueryResult of IteratedReferenceLinks if the value of onlyOtherSide is "false" or iterations if the value is "true".
 QueryResult navigateReferencesToIteration(Iterated iteration, boolean onlyOtherSide, ConfigSpec configSpec)
          Navigate the references role of the IteratedReferenceLink and finds the appropriate iterations for those masters by applying the ConfigSpec.
 QueryResult navigateReferencesToIteration(Iterated iteration, Class iteratedReferenceLinkClass, boolean onlyOtherSide, ConfigSpec configSpec)
          Navigate the references role of the IteratedReferenceLink and finds the appropriate iterations for those masters by applying the ConfigSpec.
 QueryResult navigateReferencesToIteration(Iterated iteration, ConfigSpec configSpec)
          Navigates the references role of the IteratedReferenceLink and finds the appropriate iterations for the masters given the configSpec and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations.
 QueryResult navigateUsedBy(Mastered master)
          Navigates the usedBy role of the IteratedUsageLink, returning a QueryResult of latest iterations.
 QueryResult navigateUsedBy(Mastered master, boolean onlyOtherSide)
          Navigates the usedBy role of the IteratedUsageLink, returning a QueryResult of IteratedUsageLinks if the value of onlyOtherSide is "false or iterations if the value is "true".
 QueryResult navigateUsedBy(Mastered master, Class iteratedUsageLinkClass, boolean onlyOtherSide)
          Navigates the usedBy role of the IteratedUsageLink, returning a QueryResult of IteratedUsageLinks if the value of onlyOtherSide is "false or iterations if the value is "true".
 QueryResult navigateUsedByToIteration(Iterated iteration, boolean onlyOtherSide, ConfigSpec configSpec)
          Navigates the used by role of the IteratedUsageLink and finds the appropriate iterations for the masters given the configSpec, then for the masters of those iterations is uses filteredIterationsOf to double check that those iterations where the ones that should have been chosen by the config spec, and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations.
 QueryResult navigateUsedByToIteration(Iterated iteration, Class iteratedUsageLinkClass, boolean onlyOtherSide, ConfigSpec configSpec)
          Navigates the used by role of the IteratedUsageLink and finds the appropriate iterations for the masters given the configSpec, then for the masters of those iterations is uses filteredIterationsOf to double check that those iterations where the ones that should have been chosen by the config spec, and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations.
 QueryResult navigateUsedByToIteration(Iterated iteration, ConfigSpec configSpec)
          Navigates the used by role of the IteratedUsageLink and finds the appropriate iterations for the masters given the configSpec, then for the masters of those iterations is uses filteredIterationsOf to double check that those iterations where the ones that should have been chosen by the config spec, and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations.
 QueryResult navigateUses(Iterated iteration)
          Navigates the uses role of the IteratedUsageLink, returning a QueryResult of masters.
 QueryResult navigateUses(Iterated iteration, boolean onlyOtherSide)
          Navigates the uses role of the IteratedUsageLink, returning a QueryResult of IteratedUsageLinks if the value of onlyOtherSide is "false" or iterations if the value is "true".
 QueryResult navigateUses(Iterated iteration, Class iteratedUsageLinkClass, boolean onlyOtherSide)
          Navigates the uses role of the IteratedUsageLink, returning a QueryResult of IteratedUsageLinks if the value of onlyOtherSide is "false" or iterations if the value is "true".
 QueryResult navigateUsesToIteration(Iterated iteration, boolean onlyOtherSide, ConfigSpec configSpec)
          Navigate the uses role of the IteratedUsageLink and finds the appropriate iterations for those masters by applying the ConfigSpec.
 QueryResult navigateUsesToIteration(Iterated iteration, Class iteratedUsageLinkClass, boolean onlyOtherSide, ConfigSpec configSpec)
          Navigate the uses role of the IteratedUsageLink and finds the appropriate iterations for those masters by applying the ConfigSpec.
 QueryResult navigateUsesToIteration(Iterated iteration, ConfigSpec configSpec)
          Navigates the uses role of the IteratedUsageLink and finds the appropriate iterations for the masters given the configSpec and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations.
static StandardStructService newStandardStructService()
          Default factory for the class.
protected  void performStartupProcess()
          Adds event listeners to copy the IteratedUsageLink/IteratedReferenceLink when an iteration is copied, as well as to verify the user's ability to create, delete, and update these links.
private  WTList queryLatestIterations(WTCollection describeLinks)
           
protected  QueryResult removeDupesFromNavigateReferencedByOrUsedByResults(QueryResult queryResult, boolean onlyOtherSide)
           
private  void removeLinksForReferentialIntegrity(WTCollection targets)
           
private  WTList setDescribedBys(WTCollection describeLinksColl, WTList describedByLatestIterations)
           
private  QueryResult toQueryResult(WTCollection c)
          Given WTCollection convert it to QueryResult
private  WTCollection toWTCollection(QueryResult qr)
          Given QueryResult convert it to WTCollection
private  void updateResultMap(Map resultMap, StandardStructService.LinkRow row)
           
private  void updateUsageLinksForNewIteration(WTValuedMap predecessorsToTargetsMap)
           
protected  void validateLinkAction(WTCollection c, boolean checkForReflexive)
           
 
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

SANDBOX_CHECKIN_LISTENER_KEY

public static final Object SANDBOX_CHECKIN_LISTENER_KEY

SANDBOX_CHECKIN_KEY

private static final String SANDBOX_CHECKIN_KEY
The sandbox checkin adds an annoying wrinkle to how links are copied. Normally, we want to copy describes links forward only if the other side object is not terminal (among other things), but if you checkin both a part and a document from a sandbox at the same time and they're associated to each other (via a describes link) and the document ends up getting checked in first, the following happens: o a NEW_ITERATION event occurs for the document in the process of it being checked in and we do nothing, as normal. o the document gets "checked in" and the sandbox version is made terminal. o at this point, the sandbox part is associated to the terminal version of the document but not to the new version. o the part gets checked in -- it does not duplicate either the link to the terminal version or the (non-existent) link to the new version. o we get to the sandbox checkin, which would normally duplicate links, but there's nothing interesting to duplicate. The solution here is to keep a record of all the objects that are going through a sandbox checkin and duplicate (in copyLinksForNewIterations) all the links to the documents made terminal by the loop.

See Also:
Constant Field Values

MULTI_OBJECT_VERBOSE

private static final boolean MULTI_OBJECT_VERBOSE
See Also:
Constant Field Values

PROJECTLINK_INSTALLED

private static final boolean PROJECTLINK_INSTALLED

CONTAINED_LIST

private static final ArrayList CONTAINED_LIST

CONTAINED_AND_WORKABLE_LIST

private static final ArrayList CONTAINED_AND_WORKABLE_LIST

WORKABLE_LIST

private static final ArrayList WORKABLE_LIST

ALL_ITERATED_CLASSES

private static final ArrayList ALL_ITERATED_CLASSES

EXCLUDE_ITERATED_DESCRIBE_LINK_CLASSES

private static final ArrayList EXCLUDE_ITERATED_DESCRIBE_LINK_CLASSES

EXCLUDE_ITERATED_USAGE_LINK_CLASSES

private static final ArrayList EXCLUDE_ITERATED_USAGE_LINK_CLASSES

INVALID_USES_CLASSES

private static final ArrayList INVALID_USES_CLASSES

INVALID_REFERENCES_CLASSES

private static final ArrayList INVALID_REFERENCES_CLASSES

INVALID_NON_WORKABLE_DESCRIBES_CLASSES

private static final ArrayList INVALID_NON_WORKABLE_DESCRIBES_CLASSES

INVALID_WORKABLE_DESCRIBES_CLASSES

private static final ArrayList INVALID_WORKABLE_DESCRIBES_CLASSES
Constructor Detail

StandardStructService

public StandardStructService()
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 event listeners to copy the IteratedUsageLink/IteratedReferenceLink when an iteration is copied, as well as to verify the user's ability to create, delete, and update these links.

Supported API: false

Overrides:
performStartupProcess in class StandardManager
Throws:
ManagerException

newStandardStructService

public static StandardStructService newStandardStructService()
                                                      throws WTException
Default factory for the class.

Supported API: false

Returns:
StandardStructService
Throws:
WTException

navigateUses

public QueryResult navigateUses(Iterated iteration)
                         throws WTException
Navigates the uses role of the IteratedUsageLink, returning a QueryResult of masters.

Supported API: true

Specified by:
navigateUses in interface StructService
Parameters:
iteration -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedUsageLink, Mastered

navigateUses

public QueryResult navigateUses(Iterated iteration,
                                boolean onlyOtherSide)
                         throws WTException
Navigates the uses role of the IteratedUsageLink, returning a QueryResult of IteratedUsageLinks if the value of onlyOtherSide is "false" or iterations if the value is "true".

Supported API: true

Specified by:
navigateUses in interface StructService
Parameters:
iteration -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedUsageLink, Mastered

navigateUses

public QueryResult navigateUses(Iterated iteration,
                                Class iteratedUsageLinkClass,
                                boolean onlyOtherSide)
                         throws WTException
Navigates the uses role of the IteratedUsageLink, returning a QueryResult of IteratedUsageLinks if the value of onlyOtherSide is "false" or iterations if the value is "true".

Supported API: true

Specified by:
navigateUses in interface StructService
Parameters:
iteration -
iteratedUsageLinkClass -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedUsageLink, Mastered

navigateUsedByToIteration

public QueryResult navigateUsedByToIteration(Iterated iteration,
                                             ConfigSpec configSpec)
                                      throws WTException,
                                             ConfigException
Navigates the used by role of the IteratedUsageLink and finds the appropriate iterations for the masters given the configSpec, then for the masters of those iterations is uses filteredIterationsOf to double check that those iterations where the ones that should have been chosen by the config spec, and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations.

Supported API: true

Specified by:
navigateUsedByToIteration in interface StructService
Parameters:
iteration -
configSpec -
Returns:
QueryResult
Throws:
WTException
ConfigException
See Also:
IteratedUsageLink, Mastered, Iterated, ConfigSpec

navigateUsedByToIteration

public QueryResult navigateUsedByToIteration(Iterated iteration,
                                             boolean onlyOtherSide,
                                             ConfigSpec configSpec)
                                      throws WTException,
                                             ConfigException
Navigates the used by role of the IteratedUsageLink and finds the appropriate iterations for the masters given the configSpec, then for the masters of those iterations is uses filteredIterationsOf to double check that those iterations where the ones that should have been chosen by the config spec, and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations. If onlyOtherSide" is true", it returns a QueryResult of matching iterations and masters if no iterations matched. If "false", returns a QueryResult of Persistable[] in which the 0th Persistable in the array is the IteratedUsageLink and the 1th position is the matching iteration or master if no matching iteration was found.

Supported API: true

Specified by:
navigateUsedByToIteration in interface StructService
Parameters:
iteration -
onlyOtherSide -
configSpec -
Returns:
QueryResult
Throws:
WTException
ConfigException
See Also:
IteratedUsageLink, Mastered, Iterated, ConfigSpec

navigateUsedByToIteration

public QueryResult navigateUsedByToIteration(Iterated iteration,
                                             Class iteratedUsageLinkClass,
                                             boolean onlyOtherSide,
                                             ConfigSpec configSpec)
                                      throws WTException,
                                             ConfigException
Navigates the used by role of the IteratedUsageLink and finds the appropriate iterations for the masters given the configSpec, then for the masters of those iterations is uses filteredIterationsOf to double check that those iterations where the ones that should have been chosen by the config spec, and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations. If onlyOtherSide" is true", it returns a QueryResult of matching iterations and masters if no iterations matched. If "false", returns a QueryResult of Persistable[] in which the 0th Persistable in the array is the IteratedUsageLink and the 1th position is the matching iteration or master if no matching iteration was found.

Supported API: true

Specified by:
navigateUsedByToIteration in interface StructService
Parameters:
iteration -
iteratedUsageLinkClass -
onlyOtherSide -
configSpec -
Returns:
QueryResult
Throws:
WTException
ConfigException
See Also:
IteratedUsageLink, Mastered, Iterated, ConfigSpec

navigateUsedBy

public QueryResult navigateUsedBy(Mastered master)
                           throws WTException
Navigates the usedBy role of the IteratedUsageLink, returning a QueryResult of latest iterations.

Supported API: true

Specified by:
navigateUsedBy in interface StructService
Parameters:
master -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedUsageLink, Iterated

navigateUsedBy

public QueryResult navigateUsedBy(Mastered master,
                                  boolean onlyOtherSide)
                           throws WTException
Navigates the usedBy role of the IteratedUsageLink, returning a QueryResult of IteratedUsageLinks if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: true

Specified by:
navigateUsedBy in interface StructService
Parameters:
master -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedUsageLink, wt.vc.version.Version

navigateUsedBy

public QueryResult navigateUsedBy(Mastered master,
                                  Class iteratedUsageLinkClass,
                                  boolean onlyOtherSide)
                           throws WTException
Navigates the usedBy role of the IteratedUsageLink, returning a QueryResult of IteratedUsageLinks if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: true

Specified by:
navigateUsedBy in interface StructService
Parameters:
master -
iteratedUsageLinkClass -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedUsageLink, wt.vc.version.Version

navigateUsesToIteration

public QueryResult navigateUsesToIteration(Iterated iteration,
                                           ConfigSpec configSpec)
                                    throws WTException,
                                           ConfigException
Navigates the uses role of the IteratedUsageLink and finds the appropriate iterations for the masters given the configSpec and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations.

Supported API: true

Specified by:
navigateUsesToIteration in interface StructService
Parameters:
iteration -
configSpec -
Returns:
QueryResult
Throws:
WTException
ConfigException
See Also:
IteratedUsageLink, Mastered, Iterated, ConfigSpec

navigateUsesToIteration

public QueryResult navigateUsesToIteration(Iterated iteration,
                                           boolean onlyOtherSide,
                                           ConfigSpec configSpec)
                                    throws WTException,
                                           ConfigException
Navigate the uses role of the IteratedUsageLink and finds the appropriate iterations for those masters by applying the ConfigSpec. If onlyOtherSide" is true", it returns a QueryResult of matching iterations and masters if no iterations matched. If "false", returns a QueryResult of Persistable[] in which the 0th Persistable in the array is the IteratedUsageLink and the 1th position is the matching iteration or master if no matching iteration was found.

Supported API: true

Specified by:
navigateUsesToIteration in interface StructService
Parameters:
iteration -
onlyOtherSide -
configSpec -
Returns:
QueryResult
Throws:
WTException
ConfigException
See Also:
IteratedUsageLink, Mastered, Iterated, ConfigSpec

navigateUsesToIteration

public QueryResult navigateUsesToIteration(Iterated iteration,
                                           Class iteratedUsageLinkClass,
                                           boolean onlyOtherSide,
                                           ConfigSpec configSpec)
                                    throws WTException,
                                           ConfigException
Navigate the uses role of the IteratedUsageLink and finds the appropriate iterations for those masters by applying the ConfigSpec. If onlyOtherSide" is true", it returns a QueryResult of matching iterations and masters if no iterations matched. If "false", returns a QueryResult of Persistable[] in which the 0th Persistable in the array is the IteratedUsageLink and the 1th position is the matching iteration or master if no matching iteration was found.

Supported API: true

Specified by:
navigateUsesToIteration in interface StructService
Parameters:
iteration -
iteratedUsageLinkClass -
onlyOtherSide -
configSpec -
Returns:
QueryResult
Throws:
WTException
ConfigException
See Also:
IteratedUsageLink, Mastered, Iterated, ConfigSpec

navigateReferences

public QueryResult navigateReferences(Iterated iteration)
                               throws WTException
Navigates the references role of the IteratedReferenceLink, returning a QueryResult of masters.

Supported API: true

Specified by:
navigateReferences in interface StructService
Parameters:
iteration -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedReferenceLink, Mastered

navigateReferences

public QueryResult navigateReferences(Iterated iteration,
                                      boolean onlyOtherSide)
                               throws WTException
Navigates the references role of the IteratedReferenceLink, returning a QueryResult of IteratedReferenceLinks if the value of onlyOtherSide is "false" or iterations if the value is "true".

Supported API: true

Specified by:
navigateReferences in interface StructService
Parameters:
iteration -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedReferenceLink, Mastered

navigateReferences

public QueryResult navigateReferences(Iterated iteration,
                                      Class iteratedReferenceLinkClass,
                                      boolean onlyOtherSide)
                               throws WTException
Navigates the references role of the IteratedReferenceLink, returning a QueryResult of IteratedReferenceLinks if the value of onlyOtherSide is "false" or iterations if the value is "true".

Supported API: true

Specified by:
navigateReferences in interface StructService
Parameters:
iteration -
iteratedReferenceLinkClass -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedReferenceLink, Mastered

navigateReferencedBy

public QueryResult navigateReferencedBy(Mastered master)
                                 throws WTException
Navigates the referencedBy role of the IteratedReferenceLink, returning a QueryResult of latest iterations.

Supported API: true

Specified by:
navigateReferencedBy in interface StructService
Parameters:
master -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedReferenceLink, Iterated

navigateReferencedBy

public QueryResult navigateReferencedBy(Mastered master,
                                        boolean onlyOtherSide)
                                 throws WTException
Navigates the referencedBy role of the IteratedReferenceLink, returning a QueryResult of IteratedReferenceLinks if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: true

Specified by:
navigateReferencedBy in interface StructService
Parameters:
master -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedReferenceLink, wt.vc.version.Version

navigateReferencedBy

public QueryResult navigateReferencedBy(Mastered master,
                                        Class iteratedReferenceLinkClass,
                                        boolean onlyOtherSide)
                                 throws WTException
Navigates the referencedBy role of the IteratedReferenceLink, returning a QueryResult of IteratedReferenceLinks if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: true

Specified by:
navigateReferencedBy in interface StructService
Parameters:
master -
iteratedReferenceLinkClass -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedReferenceLink, wt.vc.version.Version

navigateReferencesToIteration

public QueryResult navigateReferencesToIteration(Iterated iteration,
                                                 ConfigSpec configSpec)
                                          throws WTException,
                                                 ConfigException
Navigates the references role of the IteratedReferenceLink and finds the appropriate iterations for the masters given the configSpec and returns a QueryResult of those iterations that match as well as the masters for which there were no matching iterations.

Supported API: true

Specified by:
navigateReferencesToIteration in interface StructService
Parameters:
iteration -
configSpec -
Returns:
QueryResult
Throws:
WTException
ConfigException
See Also:
IteratedReferenceLink, Mastered, Iterated, ConfigSpec

navigateReferencesToIteration

public QueryResult navigateReferencesToIteration(Iterated iteration,
                                                 boolean onlyOtherSide,
                                                 ConfigSpec configSpec)
                                          throws WTException,
                                                 ConfigException
Navigate the references role of the IteratedReferenceLink and finds the appropriate iterations for those masters by applying the ConfigSpec. If onlyOtherSide" is true", it returns a QueryResult of matching iterations and masters if no iterations matched. If "false", returns a QueryResult of Persistable[] in which the 0th Persistable in the array is the IteratedReferenceLink and the 1th position is the matching iteration or master if no matching iteration was found.

Supported API: true

Specified by:
navigateReferencesToIteration in interface StructService
Parameters:
iteration -
onlyOtherSide -
configSpec -
Returns:
QueryResult
Throws:
WTException
ConfigException
See Also:
IteratedReferenceLink, Mastered, Iterated, ConfigSpec

navigateReferencesToIteration

public QueryResult navigateReferencesToIteration(Iterated iteration,
                                                 Class iteratedReferenceLinkClass,
                                                 boolean onlyOtherSide,
                                                 ConfigSpec configSpec)
                                          throws WTException,
                                                 ConfigException
Navigate the references role of the IteratedReferenceLink and finds the appropriate iterations for those masters by applying the ConfigSpec. If onlyOtherSide" is true", it returns a QueryResult of matching iterations and masters if no iterations matched. If "false", returns a QueryResult of Persistable[] in which the 0th Persistable in the array is the IteratedReferenceLink and the 1th position is the matching iteration or master if no matching iteration was found.

Supported API: true

Specified by:
navigateReferencesToIteration in interface StructService
Parameters:
iteration -
iteratedReferenceLinkClass -
onlyOtherSide -
configSpec -
Returns:
QueryResult
Throws:
WTException
ConfigException
See Also:
IteratedReferenceLink, Mastered, Iterated, ConfigSpec

navigateDescribes

public QueryResult navigateDescribes(Iterated iteration)
                              throws WTException
Deprecated.  

Navigates the describes role of the IteratedDescribeLink, returning a QueryResult of iterations

Supported API: false

Specified by:
navigateDescribes in interface StructService
Parameters:
iteration -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedDescribeLink, Iterated

navigateDescribes

public QueryResult navigateDescribes(Iterated iteration,
                                     boolean onlyOtherSide)
                              throws WTException
Deprecated.  

Navigates the describes role of the IteratedDescribeLink, returning a QueryResult of IteratedDescribeLink if the value of onlyOtherSide is "false" or iterations if the value is "true".

Supported API: false

Specified by:
navigateDescribes in interface StructService
Parameters:
iteration -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedDescribeLink, Iterated

navigateDescribes

public QueryResult navigateDescribes(Iterated iteration,
                                     Class iteratedDescribeLinkClass,
                                     boolean onlyOtherSide)
                              throws WTException
Deprecated.  

Navigates the describes role of the IteratedDescribeLink, returning a QueryResult of IteratedDescribeLink if the value of onlyOtherSide is "false" or iterations if the value is "true".

Supported API: false

Specified by:
navigateDescribes in interface StructService
Parameters:
iteration -
iteratedDescribeLinkClass -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedDescribeLink, Iterated

navigateDescribes

public WTKeyedMap navigateDescribes(WTCollection iterations)
                             throws WTException
Navigates the describes roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of other side objects per iteration, i.e. each iteration key corresponds to a WTList.

Supported API: true

Specified by:
navigateDescribes in interface StructService
Parameters:
iterations -
Returns:
WTKeyedMap
Throws:
WTException
See Also:
IteratedDescribeLink, wt.vc.version.Iterated

navigateDescribes

public WTKeyedMap navigateDescribes(WTCollection iterations,
                                    boolean onlyOtherSide)
                             throws WTException
Navigates the describes roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of links or other side objects per iteration, i.e. each iteration key corresponds to a WTList. IteratedDescribeLinks are returned if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: true

Specified by:
navigateDescribes in interface StructService
Parameters:
iterations -
onlyOtherSide -
Returns:
WTKeyedMap
Throws:
WTException
See Also:
IteratedDescribeLink, wt.vc.version.Iterated

navigateDescribes

public WTKeyedMap navigateDescribes(WTCollection iterations,
                                    Class iteratedDescribeLinkClass,
                                    boolean onlyOtherSide)
                             throws WTException
Navigates the describes roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of links or other side objects per iteration, i.e. each iteration key corresponds to a WTList. IteratedDescribeLinks are returned if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: true

Specified by:
navigateDescribes in interface StructService
Parameters:
iterations -
iteratedDescribeLinkClass -
onlyOtherSide -
Returns:
WTKeyedMap
Throws:
WTException
See Also:
IteratedDescribeLink, wt.vc.version.Iterated

navigateDescribedBy

public QueryResult navigateDescribedBy(Iterated iteration)
                                throws WTException
Deprecated.  

Navigates the describedBy role of the IteratedDescribeLink, returning a QueryResult of iterations

Supported API: false

Specified by:
navigateDescribedBy in interface StructService
Parameters:
iteration -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedDescribeLink, Iterated

navigateDescribedBy

public QueryResult navigateDescribedBy(Iterated iteration,
                                       boolean onlyOtherSide)
                                throws WTException
Deprecated.  

Navigates the describedBy role of the IteratedDescribeLink, returning a QueryResult of IteratedDescribeLinks if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: false

Specified by:
navigateDescribedBy in interface StructService
Parameters:
iteration -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedDescribeLink, wt.vc.version.Iterated

navigateDescribedBy

public QueryResult navigateDescribedBy(Iterated iteration,
                                       Class iteratedDescribeLinkClass,
                                       boolean onlyOtherSide)
                                throws WTException
Deprecated.  

Navigates the describedBy role of the IteratedDescribeLink, returning a QueryResult of IteratedDescribeLinks if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: false

Specified by:
navigateDescribedBy in interface StructService
Parameters:
iteration -
iteratedDescribeLinkClass -
onlyOtherSide -
Returns:
QueryResult
Throws:
WTException
See Also:
IteratedDescribeLink, wt.vc.version.Iterated

navigateDescribedBys

public WTKeyedMap navigateDescribedBys(WTCollection iterations)
                                throws WTException
Navigates the describedBy roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of other side objects per iteration, i.e. each iteration key corresponds to a WTList.

Supported API: true

Specified by:
navigateDescribedBys in interface StructService
Parameters:
iterations -
Returns:
WTKeyedMap
Throws:
WTException
See Also:
IteratedDescribeLink, wt.vc.version.Iterated

navigateDescribedBys

public WTKeyedMap navigateDescribedBys(WTCollection iterations,
                                       boolean onlyOtherSide)
                                throws WTException
Navigates the describedBy roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of links or other side objects per iteration, i.e. each iteration key corresponds to a WTList. IteratedDescribeLinks are returned if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: true

Specified by:
navigateDescribedBys in interface StructService
Parameters:
iterations -
onlyOtherSide -
Returns:
WTKeyedMap
Throws:
WTException
See Also:
IteratedDescribeLink, wt.vc.version.Iterated

navigateDescribedBys

public WTKeyedMap navigateDescribedBys(WTCollection iterations,
                                       Class iteratedDescribeLinkClass,
                                       boolean onlyOtherSide)
                                throws WTException
Navigates the describedBy roles of the IteratedDescribeLinks returning a WTKeyedMap of keys = iterations and values = a WTList of links or other side objects per iteration, i.e. each iteration key corresponds to a WTList. IteratedDescribeLinks are returned if the value of onlyOtherSide is "false or iterations if the value is "true".

Supported API: true

Specified by:
navigateDescribedBys in interface StructService
Parameters:
iterations -
iteratedDescribeLinkClass -
onlyOtherSide -
Returns:
WTKeyedMap
Throws:
WTException
See Also:
IteratedDescribeLink, wt.vc.version.Iterated

getIterationsToLinksMap

private WTKeyedMap getIterationsToLinksMap(WTKeyedMap iterationsToOtherSideObjectsMap,
                                           String otherSideRole,
                                           WTKeyedMap navigateResultMap)
                                    throws WTException
Given a WTKeyedMap of iterations to other side objects return a WTKeyedMap relating iterations to links.

Parameters:
otherSideRole -
Returns:
WTKeyedMap: filtered with keys = iteration Persistables, values = WTLists of inflated IteratedDescribeLinks
Throws:
WTException

latestDescribes

protected WTKeyedMap latestDescribes(Map navigateResultMap,
                                     String role,
                                     boolean onlyOtherSide)
                              throws WTException
Filter iterations.

Parameters:
role -
Returns:
WTKeyedMap: keys = iteration Persistables, values = inflated WTArrayList of filtered other side role objects for each iteration
Throws:
WTException

toQueryResult

private QueryResult toQueryResult(WTCollection c)
                           throws WTException
Given WTCollection convert it to QueryResult

Parameters:
c -
Returns:
QueryResult
Throws:
WTException

toWTCollection

private WTCollection toWTCollection(QueryResult qr)
Given QueryResult convert it to WTCollection

Parameters:
qr -
Returns:
WTCollection

filterOtherSideRoleObjects

private WTKeyedMap filterOtherSideRoleObjects(Map iterationsToOtherSideObjectsMap,
                                              String role,
                                              boolean onlyOtherSide)
                                       throws WTException
If an iteration key is the latest iteration filter out any other side objects that are not latest iterations.

Returns:
WTKeyedMap : keys = iteration Persistables, values = WTList of other side objects
Throws:
WTException

latestDescribe

protected QueryResult latestDescribe(Iterated iteration,
                                     QueryResult qr)
                              throws WTException
This method goes through the given query result, processes the multiple latest config spec on the result and applies access control. It deals with being given a query result of iterations.

Parameters:
iteration -
Returns:
QueryResult
Throws:
WTException

copyLinksForNewCopy

protected void copyLinksForNewCopy(RevisionControlled original,
                                   RevisionControlled copy,
                                   CopyRules copy_rules)
                            throws WTException
Throws:
WTException

getPredecessors

private WTValuedMap getPredecessors(WTCollection targets)
                             throws WTException
Throws:
WTException

updateUsageLinksForNewIteration

private void updateUsageLinksForNewIteration(WTValuedMap predecessorsToTargetsMap)
                                      throws WTException
Throws:
WTException

getDescribeLinksToCopyForNewDescribedByRoleObjectIteration

private WTValuedMap getDescribeLinksToCopyForNewDescribedByRoleObjectIteration(WTValuedMap predecessorsToTargetsMap,
                                                                               WTValuedMap copyLinkMap,
                                                                               WTKeyedMap predecessorsToDescribedLinkListMap)
                                                                        throws WTException
Throws:
WTException

getDescribeLinksToCopyForNewDescribesRoleObjectIteration

private WTValuedMap getDescribeLinksToCopyForNewDescribesRoleObjectIteration(WTValuedMap predecessorsToTargetsMap,
                                                                             WTValuedMap copyLinkMap,
                                                                             WTKeyedMap predecessorsToDescribedLinkListMap)
                                                                      throws WTException
Throws:
WTException

getCopyLinksForNewIterationQuerySpec

private QuerySpec getCopyLinksForNewIterationQuerySpec(Class linkClass,
                                                       long[] ids)
                                                throws WTException
Throws:
WTException

getStatementSpec

private StatementSpec getStatementSpec(List querySpecs,
                                       SetOperator operator)
                                throws WTException
Throws:
WTException

addCopyLinkEntry

private WTKeyedMap addCopyLinkEntry(WTKeyedMap predecessorToLinksMap,
                                    StandardStructService.LinkRowSet a_rowSet,
                                    int SIZE)
                             throws WTException
Throws:
WTException

updateResultMap

private void updateResultMap(Map resultMap,
                             StandardStructService.LinkRow row)
                      throws WTException
Throws:
WTException

copyLinksForNewIterations

protected void copyLinksForNewIterations(WTCollection targets)
                                  throws WTException
Throws:
WTException

filterNonLatestOtherSideObjects

private void filterNonLatestOtherSideObjects(Map resultMap,
                                             WTCollection targetsCollection)
                                      throws WTException
Throws:
WTException

copyLinksForCheckout

private void copyLinksForCheckout(WTKeyedMap originalWorkingCopyMap)
                           throws WTException
Throws:
WTException

inflateLinksAndRoleObjects

private WTKeyedMap inflateLinksAndRoleObjects(Map a_sourceObjectsToLinksMap)
                                       throws WTException
Throws:
WTException

hasLinkTypesToValidate

private boolean hasLinkTypesToValidate(WTCollection objectToObjectLinkColl)

doProjectLinkValidations

private void doProjectLinkValidations(WTCollection linksCollection)
                               throws WTException
Throws:
WTException

doReflexiveValidation

private void doReflexiveValidation(WTCollection links)
                            throws WTException
Throws:
WTException

queryLatestIterations

private WTList queryLatestIterations(WTCollection describeLinks)
                              throws WTException
Throws:
WTException

setDescribedBys

private WTList setDescribedBys(WTCollection describeLinksColl,
                               WTList describedByLatestIterations)
                        throws WTException
Throws:
WTException

getOtherDescribeLinks

private WTCollection getOtherDescribeLinks(WTList describedByLatestIterations,
                                           Iterator describeLinksIter)
                                    throws WTException
Throws:
WTException

insertDuplicateLinks

private void insertDuplicateLinks(WTCollection describeLinks,
                                  WTList describedByLatestIterations)
                           throws WTException
Throws:
WTException

isCheckedOutToSandbox

private boolean isCheckedOutToSandbox(Iterated iterated)
                               throws WTException
Throws:
WTException

getOtherSideSandboxObjects

private Map getOtherSideSandboxObjects(WTCollection describedBys)
                                throws WTException
Throws:
WTException

insertSandboxLinkDuplicates

private void insertSandboxLinkDuplicates(WTCollection originalDescribedBys,
                                         WTCollection describeLinks)
                                  throws WTException
Throws:
WTException

formatOriginalCopies

private WTList formatOriginalCopies(WTList describedByLatestIterations)
                             throws WTException
Throws:
WTException

handleDescribeLinks

private void handleDescribeLinks(WTCollection describeLinks,
                                 boolean checkForReflexive)
                          throws WTException
Throws:
WTException

getOidsFromMap

private WTCollection getOidsFromMap(WTValuedMap m)

isNotCheckedIn

private boolean isNotCheckedIn(Iterated iterated)
                        throws WTException
Throws:
WTException

getCompositeWhereExpression

private CompositeWhereExpression getCompositeWhereExpression(List whereExpressions,
                                                             LogicalOperator op)
                                                      throws WTException
Throws:
WTException

getRoles

private List getRoles(WTCollection links)
               throws WTException
Throws:
WTException

initializeValidateLinkAction

private void initializeValidateLinkAction(Object event)
                                   throws WTException
Throws:
WTException

inflateLinksAndRoleObjects

private WTCollection inflateLinksAndRoleObjects(WTCollection c)
                                         throws WTException
Throws:
WTException

getIterationsCollection

private WTCollection getIterationsCollection(WTCollection linkCollection)
                                      throws WTException
Throws:
WTException

validateLinkAction

protected void validateLinkAction(WTCollection c,
                                  boolean checkForReflexive)
                           throws WTException
Throws:
WTException

copyLinksForSandboxGetLinks

protected QueryResult copyLinksForSandboxGetLinks(boolean includeWorkable,
                                                  long[] oids)
                                           throws WTException
Gets the appropriate links to copy for the given oids. Used internally by copyLinksForSandbox.

Throws:
WTException

copyLinksForSandbox

protected void copyLinksForSandbox(Map versionRefMap)
                            throws WTException
Copies the links from original version to new version.

Parameters:
versionRefMap - Map from references to original versions to corresponding newly versions.
Throws:
WTException

buildBasicNavigateReferencedByOrUsedByQuerySpec

protected QuerySpec buildBasicNavigateReferencedByOrUsedByQuerySpec(Mastered master,
                                                                    Class byBaseClass,
                                                                    Class linkClass,
                                                                    boolean onlyOtherSide)
                                                             throws WTException
Throws:
WTException

addTerminalWhereStatementToBasicNavigateReferencedByOrUsedByQuerySpec

protected void addTerminalWhereStatementToBasicNavigateReferencedByOrUsedByQuerySpec(QuerySpec querySpec,
                                                                                     Class byBaseClass)
                                                                              throws WTException
Throws:
WTException

removeDupesFromNavigateReferencedByOrUsedByResults

protected QueryResult removeDupesFromNavigateReferencedByOrUsedByResults(QueryResult queryResult,
                                                                         boolean onlyOtherSide)

navigateReferencedByOrUsedBy

protected QueryResult navigateReferencedByOrUsedBy(Mastered master,
                                                   Class linkClass,
                                                   boolean onlyOtherSide)
                                            throws WTException
Throws:
WTException

removeLinksForReferentialIntegrity

private void removeLinksForReferentialIntegrity(WTCollection targets)
                                         throws WTException
Throws:
WTException

deleteWithInQuery

private void deleteWithInQuery(WTCollection c,
                               Class a_class)
                        throws WTException
Throws:
WTException

deleteLinksForPurge

private void deleteLinksForPurge(WTCollection targets)
                          throws WTException
Throws:
WTException

navigate

private WTKeyedMap navigate(WTCollection iterations,
                            Class iteratedDescribeLinkClass,
                            boolean onlyOtherSide,
                            String role)
                     throws WTException
Throws:
WTException