public class Release extends RootModuleVersionJobAbstractImpl
RootModuleVersionJobAbstractImpl.UnsyncChangesBehaviorindAvoidReentry, indDepthFirst, indHandleDynamicVersion, indHandleStaticVersion, indListModuleVersionRootChanged, listActionsPerformed, listModuleVersionRoot, moduleReentryAvoider, MSG_PATTERN_KEY_ACTIONS_PERFORMED, MSG_PATTERN_KEY_CANNOT_PROCEED_WITH_UNSYNC_LOCAL_CHANGES, MSG_PATTERN_KEY_CONFLICTS_WHILE_UPDATING, MSG_PATTERN_KEY_DO_YOU_WANT_TO_UPDATE_UNSYNC_REMOTE_CHANGES, MSG_PATTERN_KEY_INITIATING_TRAVERSAL_REFERENCE_GRAPH_ROOT_MODULE_VERSION, MSG_PATTERN_KEY_MODULE_VERSION_ALREADY_PROCESSED, MSG_PATTERN_KEY_MULTIPLE_WORKSPACE_DIRECTORIES_FOR_MODULE, MSG_PATTERN_KEY_NO_ACTIONS_PERFORMED, MSG_PATTERN_KEY_ROOT_MODULE_VERSION_NOT_KNOWN, MSG_PATTERN_KEY_TRAVERSAL_REFERENCE_GRAPH_ROOT_MODULE_VERSION_COMPLETED, MSG_PATTERN_KEY_UPDATE_CHANGED_ROOT_MODULE_VERSION, MSG_PATTERN_KEY_UPDATE_ROOT_MODULE_VERSION_TO_DEFAULT, MSG_PATTERN_KEY_UPDATE_ROOT_MODULE_VERSION_TO_WORKSPACE_DIRECTORY_VERSION, MSG_PATTERN_KEY_UPDATING, MSG_PATTERN_KEY_VERSION_DOES_NOT_EXIST, MSG_PATTERN_KEY_VISITING_LEAF_MODULE_VERSION, MSG_PATTERN_KEY_VISITING_LEAF_REFERENCE_MATCHED, referencePath, RUNTIME_PROPERTY_PROJECT_CODE, RUNTIME_PROPERTY_SYNC_WORKSPACE_DIR, unsyncChangesBehaviorLocal, unsyncChangesBehaviorRemote| Constructor and Description |
|---|
Release(List<org.azyva.dragom.model.ModuleVersion> listModuleVersionRoot)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
visitModuleVersion(org.azyva.dragom.reference.Reference reference,
org.azyva.dragom.apiutil.ByReference<org.azyva.dragom.model.Version> byReferenceVersion)
Called by the base class when visiting a root
ModuleVersion. |
protected boolean |
visitModuleVersionInternal(org.azyva.dragom.reference.Reference reference,
org.azyva.dragom.apiutil.ByReference<org.azyva.dragom.model.Version> byReferenceVersion,
boolean indRelease)
Main method that performs the traversal of the reference graph rooted at a
given
ModuleVersion. |
afterIterateListModuleVersionRoot, beforeIterateListModuleVersionRoot, beforeValidateListModuleVersionRoot, getProjectCode, getReferencePathMatcher, isListModuleVersionRootChanged, iterateListModuleVersionRoot, performJob, setIndAvoidReentry, setIndDepthFirst, setIndHandleDynamicVersion, setIndHandleStaticVersion, setIndListModuleVersionRootChanged, setReferencePathMatcherProvided, setUnsyncChangesBehaviorLocal, setUnsyncChangesBehaviorRemote, setupReferencePathMatcherForProjectCode, validateListModuleVersionRoot, visitMatchedModuleVersionpublic Release(List<org.azyva.dragom.model.ModuleVersion> listModuleVersionRoot)
listModuleVersionRoot - List of root ModuleVersion's to release.protected boolean visitModuleVersion(org.azyva.dragom.reference.Reference reference,
org.azyva.dragom.apiutil.ByReference<org.azyva.dragom.model.Version> byReferenceVersion)
ModuleVersion.
It is not possible to reuse the default implementation of this method provided by the base class as job-specific behavior is required while traversing the reference graph.
This implementation delegates to visitModuleVersionInternal(org.azyva.dragom.reference.Reference, org.azyva.dragom.apiutil.ByReference<org.azyva.dragom.model.Version>, boolean) which
handles all of the required processing.
During the traversal, two cases must be considered. There is the initial
traversal starting at a root ModuleVersion in search for ModuleVersion's
matching the ReferencePathMatcher, and when a ModuleVersion matches,
there is the recursive release itself.
But these two cases have many similarities, such as having to update the references in the parent when a referenced ModuleVersion is released. We want to avoid having two different methods so we have only the visitModuleVersionInternal method that takes a boolean so that it knows in which context it operates.
visitModuleVersion in class RootModuleVersionJobAbstractImplreference - Root ModuleVersion passed as a Reference so that the
initial parent element of the ReferencePath can be created.byReferenceVersion - If the method returns true, contains the new Version
of the root ModuleVersion.protected boolean visitModuleVersionInternal(org.azyva.dragom.reference.Reference reference,
org.azyva.dragom.apiutil.ByReference<org.azyva.dragom.model.Version> byReferenceVersion,
boolean indRelease)
ModuleVersion.
In order to avoid duplication, this method operates in two modes as indicated by indRelease. When false, it simply traverses the graph in search for matching ModuleVersion. When true is actually performs the recursive release for a matched ModuleVersion.
reference - Root ModuleVersion passed as a Reference so that the
initial parent element of the ReferencePath can be created.byReferenceVersion - If the method returns true, contains the new Version
of the root ModuleVersion.indRelease - Indicates if we operate in release mode.Copyright © 2015–2016 AZYVA INC.. All rights reserved.