Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/TypesEndpointImpl.java')
-rw-r--r--plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/TypesEndpointImpl.java57
1 files changed, 56 insertions, 1 deletions
diff --git a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/TypesEndpointImpl.java b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/TypesEndpointImpl.java
index fc6a148c390..b215c0c4286 100644
--- a/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/TypesEndpointImpl.java
+++ b/plugins/org.eclipse.osee.orcs.rest/src/org/eclipse/osee/orcs/rest/internal/TypesEndpointImpl.java
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.eclipse.osee.orcs.rest.internal;
+import static org.eclipse.osee.framework.core.enums.CoreBranches.COMMON;
import static org.eclipse.osee.orcs.rest.internal.OrcsRestUtil.executeCallable;
import java.io.ByteArrayInputStream;
import java.io.IOException;
@@ -19,13 +20,22 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.concurrent.Callable;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.StreamingOutput;
+import org.eclipse.osee.framework.core.data.ArtifactId;
import org.eclipse.osee.framework.core.data.IAttributeType;
+import org.eclipse.osee.framework.core.data.OrcsTypeSheet;
+import org.eclipse.osee.framework.core.data.OrcsTypesData;
+import org.eclipse.osee.framework.core.enums.CoreArtifactTypes;
+import org.eclipse.osee.framework.core.enums.CoreAttributeTypes;
+import org.eclipse.osee.framework.core.enums.CoreTupleTypes;
+import org.eclipse.osee.framework.core.enums.SystemUser;
import org.eclipse.osee.framework.jdk.core.type.OseeCoreException;
+import org.eclipse.osee.framework.jdk.core.util.GUID;
import org.eclipse.osee.framework.jdk.core.util.HexUtil;
import org.eclipse.osee.framework.jdk.core.util.Lib;
import org.eclipse.osee.framework.jdk.core.util.Strings;
@@ -33,12 +43,17 @@ import org.eclipse.osee.framework.resource.management.IResource;
import org.eclipse.osee.jaxrs.OseeWebApplicationException;
import org.eclipse.osee.orcs.OrcsApi;
import org.eclipse.osee.orcs.OrcsTypes;
+import org.eclipse.osee.orcs.data.ArtifactReadable;
import org.eclipse.osee.orcs.data.AttributeTypes;
import org.eclipse.osee.orcs.data.EnumEntry;
import org.eclipse.osee.orcs.data.EnumType;
import org.eclipse.osee.orcs.data.JaxEnumAttribute;
import org.eclipse.osee.orcs.data.JaxEnumEntry;
+import org.eclipse.osee.orcs.data.OrcsTopicEvents;
import org.eclipse.osee.orcs.rest.model.TypesEndpoint;
+import org.eclipse.osee.orcs.transaction.TransactionBuilder;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventAdmin;
/**
* @author Roberto E. Escobar
@@ -46,9 +61,11 @@ import org.eclipse.osee.orcs.rest.model.TypesEndpoint;
public class TypesEndpointImpl implements TypesEndpoint {
private final OrcsApi orcsApi;
+ private final EventAdmin eventAdmin;
- public TypesEndpointImpl(OrcsApi orcsApi) {
+ public TypesEndpointImpl(OrcsApi orcsApi, EventAdmin eventAdmin) {
this.orcsApi = orcsApi;
+ this.eventAdmin = eventAdmin;
}
private OrcsTypes getOrcsTypes() {
@@ -191,4 +208,42 @@ public class TypesEndpointImpl implements TypesEndpoint {
JaxEnumAttribute jaxEnumAttribute = createJaxEnumAttribute(orcsApi.getOrcsTypes().getAttributeTypes(), attrType);
return Response.ok().entity(jaxEnumAttribute.getEntries()).build();
}
+
+ @Override
+ public Response importOrcsTypes(OrcsTypesData typesData) {
+ TransactionBuilder tx = orcsApi.getTransactionFactory().createTransaction(COMMON.getId(), SystemUser.OseeSystem,
+ "Add Types to Common Branch");
+ for (OrcsTypeSheet sheet : typesData.getSheets()) {
+ String guid = GUID.create();
+ if (Strings.isValid(sheet.getGuid())) {
+ guid = sheet.getGuid();
+ }
+ Long id = Lib.generateArtifactIdAsInt();
+ if (Strings.isNumeric(sheet.getId())) {
+ id = Long.valueOf(sheet.getId());
+ }
+ ArtifactId artifact = tx.createArtifact(CoreArtifactTypes.OseeTypeDefinition, sheet.getName(), guid, id);
+ tx.setSoleAttributeValue(artifact, CoreAttributeTypes.Active, true);
+ tx.setSoleAttributeFromString(artifact, CoreAttributeTypes.UriGeneralStringData, sheet.getTypesSheet());
+ }
+ tx.commit();
+
+ tx = orcsApi.getTransactionFactory().createTransaction(COMMON.getId(), SystemUser.OseeSystem,
+ "Add OseeTypeDef Tuples to Common Branch");
+ for (ArtifactReadable artifact : orcsApi.getQueryFactory().fromBranch(COMMON).andIsOfType(
+ CoreArtifactTypes.OseeTypeDefinition).getResults()) {
+ tx.addTuple2(CoreTupleTypes.OseeTypeDef, OrcsTypesData.OSEE_TYPE_VERSION,
+ artifact.getAttributes(CoreAttributeTypes.UriGeneralStringData).iterator().next());
+ }
+ tx.commit();
+ return Response.ok().entity("Success").build();
+ }
+
+ @Override
+ public Response dbInit() {
+ Event event = new Event(OrcsTopicEvents.DBINIT_IMPORT_TYPES, (Map<String, ?>) null);
+ eventAdmin.postEvent(event);
+ return Response.ok().entity("Success").build();
+ }
+
}

Back to the top