feature[TW16796]: Add rest call to search artifacts by applicability id
Change-Id: I4629269c39c77eca5de1f86d61daaf6bd50405ff
Signed-off-by: audrey.e.denk <audrey.e.denk@boeing.com>
diff --git a/plugins/org.eclipse.osee.jaxrs/src/org/eclipse/osee/jaxrs/OrcsParamConverterProvider.java b/plugins/org.eclipse.osee.jaxrs/src/org/eclipse/osee/jaxrs/OrcsParamConverterProvider.java
index d159c38..94b4bb3 100644
--- a/plugins/org.eclipse.osee.jaxrs/src/org/eclipse/osee/jaxrs/OrcsParamConverterProvider.java
+++ b/plugins/org.eclipse.osee.jaxrs/src/org/eclipse/osee/jaxrs/OrcsParamConverterProvider.java
@@ -19,6 +19,7 @@
import javax.ws.rs.ext.Provider;
import org.eclipse.osee.framework.core.OrcsTokenService;
import org.eclipse.osee.framework.core.data.ActivityTypeId;
+import org.eclipse.osee.framework.core.data.ApplicabilityId;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactTypeJoin;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
@@ -49,6 +50,7 @@
private final ParamConverter<TransactionId> transactionIdConverter;
private final ParamConverter<AttributeId> attributeIdConverter;
private final ParamConverter<ActivityTypeId> activityTypeIdConverter;
+ private final ParamConverter<ApplicabilityId> applicabilityIdConverter;
private final ParamConverter<BranchState> branchStateConverter;
private final ParamConverter<BranchType> branchTypeConverter;
@@ -85,6 +87,7 @@
branchStateConverter = new IdParamConverter<>(BranchState::valueOf);
branchTypeConverter = new IdParamConverter<>(BranchType::valueOf);
attributeIdConverter = new IdParamConverter<>(AttributeId::valueOf);
+ applicabilityIdConverter = new IdParamConverter<>(ApplicabilityId::valueOf);
}
@SuppressWarnings("unchecked")
@@ -133,6 +136,9 @@
if (BranchType.class.isAssignableFrom(rawType)) {
return (ParamConverter<T>) branchTypeConverter;
}
+ if (ApplicabilityId.class.isAssignableFrom(rawType)) {
+ return (ParamConverter<T>) applicabilityIdConverter;
+ }
if (Id.class.isAssignableFrom(rawType)) {
return (ParamConverter<T>) idConverter;
}
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/ds/QueryData.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/ds/QueryData.java
index 6b09be7..506b34c 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/ds/QueryData.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/ds/QueryData.java
@@ -28,6 +28,7 @@
import java.util.function.Function;
import java.util.stream.Collectors;
import org.eclipse.osee.framework.core.OrcsTokenService;
+import org.eclipse.osee.framework.core.data.ApplicabilityId;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
@@ -91,8 +92,9 @@
private final HashMap<SqlTable, String> mainAliases = new HashMap<>(4);
private QueryType queryType;
private boolean followCausesChild = true;
+ private final ApplicabilityId appId;
- public QueryData(QueryData parentQueryData, QueryFactory queryFactory, QueryEngine queryEngine, CallableQueryFactory artQueryFactory, OrcsTokenService tokenService, BranchId branch, ArtifactId view) {
+ public QueryData(QueryData parentQueryData, QueryFactory queryFactory, QueryEngine queryEngine, CallableQueryFactory artQueryFactory, OrcsTokenService tokenService, BranchId branch, ArtifactId view, ApplicabilityId appId) {
this.parentQueryData = parentQueryData;
this.queryFactory = queryFactory;
this.queryEngine = queryEngine;
@@ -104,15 +106,20 @@
this.view = view;
criterias.add(new ArrayList<>());
this.tokenService = tokenService;
+ this.appId = appId;
}
public QueryData(QueryFactory queryFactory, QueryEngine queryEngine, CallableQueryFactory artQueryFactory, OrcsTokenService tokenService, BranchId branch, ArtifactId view) {
- this(null, queryFactory, queryEngine, artQueryFactory, tokenService, branch, view);
+ this(null, queryFactory, queryEngine, artQueryFactory, tokenService, branch, view, ApplicabilityId.SENTINEL);
+ }
+
+ public QueryData(QueryFactory queryFactory, QueryEngine queryEngine, CallableQueryFactory artQueryFactory, OrcsTokenService tokenService, BranchId branch, ApplicabilityId appId) {
+ this(null, queryFactory, queryEngine, artQueryFactory, tokenService, branch, ArtifactId.SENTINEL, appId);
}
public QueryData(QueryData parentQueryData) {
this(parentQueryData, parentQueryData.queryFactory, parentQueryData.queryEngine, parentQueryData.artQueryFactory,
- parentQueryData.tokenService, parentQueryData.branch, parentQueryData.view);
+ parentQueryData.tokenService, parentQueryData.branch, parentQueryData.view, ApplicabilityId.SENTINEL);
}
public QueryData(QueryFactory queryFactory, QueryEngine queryEngine, CallableQueryFactory artQueryFactory, OrcsTokenService tokenService, BranchId branch) {
@@ -756,4 +763,8 @@
public boolean isFollowCausesChild() {
return followCausesChild;
}
+
+ public ApplicabilityId getAppId() {
+ return appId;
+ }
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/QueryFactoryImpl.java b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/QueryFactoryImpl.java
index e99b494..0bb241d 100644
--- a/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/QueryFactoryImpl.java
+++ b/plugins/org.eclipse.osee.orcs.core/src/org/eclipse/osee/orcs/core/internal/search/QueryFactoryImpl.java
@@ -14,6 +14,7 @@
package org.eclipse.osee.orcs.core.internal.search;
import org.eclipse.osee.framework.core.OrcsTokenService;
+import org.eclipse.osee.framework.core.data.ApplicabilityId;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchId;
import org.eclipse.osee.orcs.OrcsApi;
@@ -69,6 +70,11 @@
}
@Override
+ public QueryBuilder fromBranch(BranchId branch, ApplicabilityId appId) {
+ return new QueryData(this, queryEngine, artQueryFactory, tokenService, branch, appId);
+ }
+
+ @Override
public TransactionQuery transactionQuery() {
return new TransactionQueryImpl(queryEngine, txCriteriaFactory,
new QueryData(this, queryEngine, artQueryFactory, tokenService));
diff --git a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/sql/AbstractSqlWriter.java b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/sql/AbstractSqlWriter.java
index 3482403..18f4e1b 100644
--- a/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/sql/AbstractSqlWriter.java
+++ b/plugins/org.eclipse.osee.orcs.db/src/org/eclipse/osee/orcs/db/internal/sql/AbstractSqlWriter.java
@@ -325,7 +325,10 @@
String mainTxsAlias = getMainTableAlias(SqlTable.TXS_TABLE);
writeEqualsAnd(mainTableAlias, mainTxsAlias, "gamma_id");
writeTxBranchFilter(mainTxsAlias);
-
+ if (queryDataCursor.getAppId().isValid()) {
+ write(" AND ");
+ writeEqualsParameter(mainTxsAlias, "app_id", queryDataCursor.getAppId());
+ }
if (queryDataCursor.getView().isValid()) {
write(" AND ");
writeEqualsParameterAnd(tupleAlias, "tuple_type", CoreTupleTypes.ViewApplicability);
diff --git a/plugins/org.eclipse.osee.orcs.rest.model/src/org/eclipse/osee/orcs/rest/model/ArtifactEndpoint.java b/plugins/org.eclipse.osee.orcs.rest.model/src/org/eclipse/osee/orcs/rest/model/ArtifactEndpoint.java
index 34a3d99..fa0dc1d 100644
--- a/plugins/org.eclipse.osee.orcs.rest.model/src/org/eclipse/osee/orcs/rest/model/ArtifactEndpoint.java
+++ b/plugins/org.eclipse.osee.orcs.rest.model/src/org/eclipse/osee/orcs/rest/model/ArtifactEndpoint.java
@@ -26,6 +26,7 @@
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
+import org.eclipse.osee.framework.core.data.ApplicabilityId;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
@@ -96,6 +97,11 @@
List<ArtifactToken> getChangedArtifactTokens(@DefaultValue("-1") @QueryParam("view") ArtifactId view, @PathParam("attributeTypeJoin") AttributeTypeJoin typeJoin, @PathParam("commentPattern") String commentPattern);
@GET
+ @Path("applicability/{id}")
+ @Produces(MediaType.APPLICATION_JSON)
+ List<ArtifactToken> getArtifactTokensByApplicability(@PathParam("id") ApplicabilityId appId);
+
+ @GET
@Path("type/{artifactType}/id")
@Produces(MediaType.APPLICATION_JSON)
List<ArtifactId> getArtifactIdsByType(@PathParam("artifactType") ArtifactTypeToken artifactType);
@@ -131,4 +137,5 @@
@Consumes(MediaType.TEXT_PLAIN)
@Produces(MediaType.APPLICATION_JSON)
TransactionToken setSoleAttributeValue(@PathParam("branch") BranchId branch, @PathParam("artifact") ArtifactId artifact, @PathParam("attributeType") AttributeTypeToken attributeType, String value);
+
}
\ No newline at end of file
diff --git a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/ArtifactEndpointImpl.java b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/ArtifactEndpointImpl.java
index b17a0af..c051af2 100644
--- a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/ArtifactEndpointImpl.java
+++ b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/ArtifactEndpointImpl.java
@@ -21,6 +21,7 @@
import java.util.Map;
import java.util.function.Supplier;
import javax.ws.rs.core.UriInfo;
+import org.eclipse.osee.framework.core.data.ApplicabilityId;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.ArtifactToken;
import org.eclipse.osee.framework.core.data.ArtifactTypeToken;
@@ -220,6 +221,11 @@
}
@Override
+ public List<ArtifactToken> getArtifactTokensByApplicability(ApplicabilityId appId) {
+ return orcsApi.getQueryFactory().fromBranch(branch, appId).asArtifactTokens();
+ }
+
+ @Override
public List<ArtifactToken> createArtifacts(BranchId branch, ArtifactTypeToken artifactType, ArtifactId parent, List<String> names) {
TransactionBuilder tx =
orcsApi.getTransactionFactory().createTransaction(branch, account, "rest - create artifacts");
diff --git a/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/search/QueryFactory.java b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/search/QueryFactory.java
index aff8918..2467cb6 100644
--- a/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/search/QueryFactory.java
+++ b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/search/QueryFactory.java
@@ -13,6 +13,7 @@
package org.eclipse.osee.orcs.search;
+import org.eclipse.osee.framework.core.data.ApplicabilityId;
import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.BranchId;
@@ -26,6 +27,8 @@
QueryBuilder fromBranch(BranchId branch, ArtifactId view);
+ QueryBuilder fromBranch(BranchId branch, ApplicabilityId appId);
+
BranchQuery branchQuery();
TransactionQuery transactionQuery();