@Override public IAtsVersion getTargetedVersionByTeamWf(IAtsTeamWorkflow teamWf) throws OseeCoreException { IAtsVersion version = versionCache.getVersion(teamWf); if (version == null) { if (getArtifact(teamWf) .getRelatedArtifactsCount(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version) > 0) { List<Artifact> verArts = getArtifact(teamWf) .getRelatedArtifacts(AtsRelationTypes.TeamWorkflowTargetedForVersion_Version); if (verArts.size() > 1) { OseeLog.log( Activator.class, Level.SEVERE, "Multiple targeted versions for artifact " + teamWf.toStringWithId()); version = cacheProvider .get() .getSoleByGuid(verArts.iterator().next().getGuid(), IAtsVersion.class); } else { version = cacheProvider .get() .getSoleByGuid(verArts.iterator().next().getGuid(), IAtsVersion.class); } versionCache.cache(teamWf, version); } } return version; }
@Override public IAtsVersion createVersion(String name) throws OseeCoreException { IAtsVersion item = atsClient.getVersionFactory().createVersion(name); AtsArtifactConfigCache cache = cacheProvider.get(); cache.cache(item); return item; }
@Override public IAtsVersion store(IAtsVersion version, IAtsTeamDefinition teamDef) { Conditions.checkNotNull(version, "version"); Conditions.checkNotNull(teamDef, "teamDef"); Conditions.checkNotNull(teamDef.getStoreObject(), "teamDef storeObject"); IAtsVersion result = version; if (version.getStoreObject() == null) { Artifact verArt = cacheProvider.get().getArtifact(version); if (verArt == null) { AtsChangeSet changes = new AtsChangeSet("Create " + version); VersionArtifactWriter writer = new VersionArtifactWriter(); verArt = writer.store(version, cacheProvider.get(), changes); changes.relate(teamDef, AtsRelationTypes.TeamDefinitionToVersion_Version, verArt); version.setStoreObject(verArt); changes.execute(); } } return result; }