diff options
author | donald.g.dunne | 2014-03-17 18:36:49 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2014-03-17 18:36:49 +0000 |
commit | 9d00587a56d20ed83eb38f37b4df949dc6739232 (patch) | |
tree | 69ad67317db14247f90efb19f6ff942b545dc0a2 /plugins | |
parent | c965addc7aaf78ec4dd913f15fb8454e8d34464f (diff) | |
download | org.eclipse.osee-9d00587a56d20ed83eb38f37b4df949dc6739232.tar.gz org.eclipse.osee-9d00587a56d20ed83eb38f37b4df949dc6739232.tar.xz org.eclipse.osee-9d00587a56d20ed83eb38f37b4df949dc6739232.zip |
feature[ats_ATS19845]: Convert Dispo to use Program tokens
Change-Id: Ie7d38ff5a7526d7cf0a9a8e1bcc27553fd8c2074
Diffstat (limited to 'plugins')
22 files changed, 466 insertions, 263 deletions
diff --git a/plugins/org.eclipse.osee.disposition.rest.model/src/org/eclipse/osee/disposition/model/DispoProgram.java b/plugins/org.eclipse.osee.disposition.rest.model/src/org/eclipse/osee/disposition/model/DispoProgram.java new file mode 100644 index 00000000000..0bbf314f2dc --- /dev/null +++ b/plugins/org.eclipse.osee.disposition.rest.model/src/org/eclipse/osee/disposition/model/DispoProgram.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2013 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.disposition.model; + +/** + * @author Donald G. Dunne + */ +public interface DispoProgram { + + public String getGuid(); + + public Long getUuid(); + + public String getName(); + +} diff --git a/plugins/org.eclipse.osee.disposition.rest.model/src/org/eclipse/osee/disposition/model/DispoProgramImpl.java b/plugins/org.eclipse.osee.disposition.rest.model/src/org/eclipse/osee/disposition/model/DispoProgramImpl.java new file mode 100644 index 00000000000..b040bacf5ac --- /dev/null +++ b/plugins/org.eclipse.osee.disposition.rest.model/src/org/eclipse/osee/disposition/model/DispoProgramImpl.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright (c) 2013 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.disposition.model; + +/** + * @author Donald G. Dunne + */ +public class DispoProgramImpl implements DispoProgram { + + private String name; + private String guid; + private Long uuid; + + public DispoProgramImpl(String name, String guid, Long uuid) { + this.name = name; + this.guid = guid; + this.uuid = uuid; + } + + @Override + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String getGuid() { + return guid; + } + + public void setGuid(String guid) { + this.guid = guid; + } + + @Override + public Long getUuid() { + return uuid; + } + + public void setUuid(Long uuid) { + this.uuid = uuid; + } +} diff --git a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/DispositionApiTest.java b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/DispositionApiTest.java index b6b9751783a..bcce504109c 100644 --- a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/DispositionApiTest.java +++ b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/DispositionApiTest.java @@ -15,6 +15,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.eclipse.osee.disposition.model.DispoAnnotationData; import org.eclipse.osee.disposition.model.DispoItemData; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSetData; import org.eclipse.osee.disposition.model.DispoStrings; import org.eclipse.osee.disposition.rest.DispoApi; @@ -53,14 +54,15 @@ public class DispositionApiTest { public void testDispositionApi() { // We have one item with discrepancies: 1-10, 12-20, 23, 25, 32-90 - IOseeBranch dispoProgramBranch = dispoApi.getDispoProgramById(SAW_Bld_1.getGuid()); - String programId = dispoProgramBranch.getGuid(); + DispoProgram sawProgram = dispoApi.getDispoFactory().createProgram(SAW_Bld_1); + IOseeBranch dispoProgramBranch = dispoApi.getDispoProgramById(sawProgram); + DispoProgram program = dispoApi.getDispoFactory().createProgram(dispoProgramBranch); - ResultSet<DispoSetData> dispoSets = dispoApi.getDispoSets(programId); + ResultSet<DispoSetData> dispoSets = dispoApi.getDispoSets(program); DispoSetData devSet = dispoSets.getExactlyOne(); String devSetId = devSet.getGuid(); - ResultSet<DispoItemData> dispoItems = dispoApi.getDispoItems(programId, devSetId); + ResultSet<DispoItemData> dispoItems = dispoApi.getDispoItems(program, devSetId); DispoItemData itemOne = dispoItems.getExactlyOne(); String itemOneId = itemOne.getGuid(); @@ -71,37 +73,37 @@ public class DispositionApiTest { DispoAnnotationData annotationOne = new DispoAnnotationData(); annotationOne.setLocationRefs("1-10"); annotationOne.setResolution("VALID"); - String createdOneId = dispoApi.createDispoAnnotation(programId, itemOneId, annotationOne); + String createdOneId = dispoApi.createDispoAnnotation(program, itemOneId, annotationOne); DispoAnnotationData annotationTwo = new DispoAnnotationData(); annotationTwo.setLocationRefs("12-20"); annotationTwo.setResolution("VALID"); - String createdTwoId = dispoApi.createDispoAnnotation(programId, itemOneId, annotationTwo); + String createdTwoId = dispoApi.createDispoAnnotation(program, itemOneId, annotationTwo); DispoAnnotationData annotationThree = new DispoAnnotationData(); annotationThree.setLocationRefs("23,25,32-90"); annotationThree.setResolution("VALID"); - String createdThreeId = dispoApi.createDispoAnnotation(programId, itemOneId, annotationThree); + String createdThreeId = dispoApi.createDispoAnnotation(program, itemOneId, annotationThree); - itemOne = dispoApi.getDispoItemById(programId, itemOneId); + itemOne = dispoApi.getDispoItemById(program, itemOneId); assertEquals(DispoStrings.Item_Complete, itemOne.getStatus()); assertEquals(5, itemOne.getDiscrepanciesList().length()); assertEquals(3, itemOne.getAnnotationsList().length()); assertTrue(itemOne.getLastUpdate().after(itemOne.getCreationDate())); - dispoApi.deleteDispoAnnotation(programId, itemOneId, createdTwoId); + dispoApi.deleteDispoAnnotation(program, itemOneId, createdTwoId); - itemOne = dispoApi.getDispoItemById(programId, itemOneId); + itemOne = dispoApi.getDispoItemById(program, itemOneId); assertEquals(DispoStrings.Item_Complete, itemOne.getStatus()); assertEquals(5, itemOne.getDiscrepanciesList().length()); assertEquals(2, itemOne.getAnnotationsList().length()); - DispoAnnotationData actualAnnotation = dispoApi.getDispoAnnotationByIndex(programId, itemOneId, createdThreeId); + DispoAnnotationData actualAnnotation = dispoApi.getDispoAnnotationByIndex(program, itemOneId, createdThreeId); assertEquals("23,25,32-90", actualAnnotation.getLocationRefs()); - actualAnnotation = dispoApi.getDispoAnnotationByIndex(programId, itemOneId, createdOneId); + actualAnnotation = dispoApi.getDispoAnnotationByIndex(program, itemOneId, createdOneId); assertEquals("1-10", actualAnnotation.getLocationRefs()); } diff --git a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/util/DispositionInitializer.java b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/util/DispositionInitializer.java index 24e2dcb654c..6817ea67bd4 100644 --- a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/util/DispositionInitializer.java +++ b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/util/DispositionInitializer.java @@ -17,6 +17,7 @@ import java.util.ArrayList; import java.util.List; import org.eclipse.osee.disposition.model.Discrepancy; import org.eclipse.osee.disposition.model.DispoItemData; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSetDescriptorData; import org.eclipse.osee.disposition.model.DispoStrings; import org.eclipse.osee.disposition.model.LocationRange; @@ -71,25 +72,31 @@ public class DispositionInitializer { TransactionBuilder tx = orcsApi.getTransactionFactory(null).createTransaction(CoreBranches.COMMON, oseeSystem, "Create Dispo Config"); ArtifactId createArtifact = tx.createArtifact(CoreArtifactTypes.GeneralData, DispoStrings.Dispo_Config_Art); - tx.createAttributeFromString(createArtifact, CoreAttributeTypes.GeneralStringData, - SAW_Bld_1.getGuid() + ":" + SAW_Bld_1_FOR_DISPO.getGuid()); + StringBuffer sb = new StringBuffer(SAW_Bld_1.getGuid()); + sb.append(":"); + sb.append(SAW_Bld_1_FOR_DISPO.getGuid()); + sb.append("\n"); + sb.append(SAW_Bld_1.getUuid()); + sb.append(":"); + sb.append(SAW_Bld_1_FOR_DISPO.getUuid()); + tx.createAttributeFromString(createArtifact, CoreAttributeTypes.GeneralStringData, sb.toString()); tx.commit(); // Creat Set and Item Arts DispoSetDescriptorData descriptor = new DispoSetDescriptorData(); descriptor.setName("DEMO SET"); descriptor.setImportPath("c:"); - Identifiable<String> devSet = dispoApi.createDispoSet(SAW_Bld_1_FOR_DISPO.getGuid(), descriptor); + DispoProgram program = dispoApi.getDispoFactory().createProgram(SAW_Bld_1_FOR_DISPO); + Identifiable<String> devSet = dispoApi.createDispoSet(program, descriptor); DispoItemData dispoItem = new DispoItemData(); dispoItem.setName("Item One"); - Identifiable<String> itemOne = - dispoApi.createDispoItem(SAW_Bld_1_FOR_DISPO.getGuid(), devSet.getGuid(), dispoItem); + Identifiable<String> itemOne = dispoApi.createDispoItem(program, devSet.getGuid(), dispoItem); - createDiscrepancies(SAW_Bld_1_FOR_DISPO.getGuid(), itemOne.getGuid()); + createDiscrepancies(program, itemOne.getGuid()); } - private void createDiscrepancies(String branchGuid, String itemId) { + private void createDiscrepancies(DispoProgram program, String itemId) { List<JSONObject> discrepanciesToInit = new ArrayList<JSONObject>(); Discrepancy one = new Discrepancy(); one.setId(0); @@ -129,7 +136,7 @@ public class DispositionInitializer { JSONArray array = new JSONArray(discrepanciesToInit); DispoItemData item = new DispoItemData(); item.setDiscrepanciesList(array); - dispoApi.editDispoItem(branchGuid, itemId, item); + dispoApi.editDispoItem(program, itemId, item); } @SuppressWarnings("unchecked") diff --git a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/util/DispositionTestUtil.java b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/util/DispositionTestUtil.java index 05b05d4056d..316ddfa9cd5 100644 --- a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/util/DispositionTestUtil.java +++ b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/integration/util/DispositionTestUtil.java @@ -27,7 +27,7 @@ public class DispositionTestUtil { public static final IOseeBranch SAW_Bld_1_FOR_DISPO = TokenFactory.createBranch("AyH_f2sSKy3l07fIvAVV", 2323, "SAW_Bld_1 - FOR_DISPOSITION"); - public static final IOseeBranch SAW_Bld_1 = TokenFactory.createBranch("AyH_f2sSKy3l07fIvAAA", 2000, "SAW_Bld_1"); + public static final IOseeBranch SAW_Bld_1 = TokenFactory.createBranch("AyH_f2sSKy3l07fIvAAA", 3, "SAW_Bld_1"); // @formatter:on } diff --git a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/internal/DispositionApiTest.java b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/internal/DispositionApiTest.java index 455a9e06be6..63e149ba0a7 100644 --- a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/internal/DispositionApiTest.java +++ b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/internal/DispositionApiTest.java @@ -24,6 +24,7 @@ import java.util.List; import org.eclipse.osee.disposition.model.DispoAnnotationData; import org.eclipse.osee.disposition.model.DispoItem; import org.eclipse.osee.disposition.model.DispoItemData; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSet; import org.eclipse.osee.disposition.model.DispoSetData; import org.eclipse.osee.disposition.model.DispoSetDescriptorData; @@ -63,7 +64,7 @@ public class DispositionApiTest { @Mock private ArtifactReadable author; @Mock - private Identifiable<String> programId; + private DispoProgram program; @Mock private Identifiable<String> setId; @Mock @@ -92,7 +93,8 @@ public class DispositionApiTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); - when(programId.getGuid()).thenReturn("abcdef"); + when(program.getGuid()).thenReturn("abcdef"); + when(program.getUuid()).thenReturn(23L); when(setId.getGuid()).thenReturn("ghijkl"); when(itemId.getGuid()).thenReturn("mnopqr"); when(mockArtId.getGuid()).thenReturn("artIdabc"); @@ -109,8 +111,8 @@ public class DispositionApiTest { @Test public void testGetDispoProgramById() { - when(storage.findProgramId(programId.getGuid())).thenAnswer(newAnswer(mockBranch)); - IOseeBranch actual = dispoApi.getDispoProgramById(programId.getGuid()); + when(storage.findProgramId(program)).thenAnswer(newAnswer(mockBranch)); + IOseeBranch actual = dispoApi.getDispoProgramById(program); assertEquals(mockBranch, actual); } @@ -135,7 +137,7 @@ public class DispositionApiTest { @Test public void testGetDispoSets() { ResultSet<DispoSet> dispoSetArts = ResultSets.singleton(dispoSet); - when(storage.findDispoSets(programId.getGuid())).thenAnswer(newAnswer(dispoSetArts)); + when(storage.findDispoSets(program)).thenAnswer(newAnswer(dispoSetArts)); when(dispoSet.getName()).thenReturn("name"); when(dispoSet.getImportPath()).thenReturn("path"); @@ -143,7 +145,7 @@ public class DispositionApiTest { when(dispoSet.getGuid()).thenReturn("setGuid"); when(dispoSet.getStatusCount()).thenReturn("count"); - ResultSet<DispoSetData> actualResultSet = dispoApi.getDispoSets(programId.getGuid()); + ResultSet<DispoSetData> actualResultSet = dispoApi.getDispoSets(program); DispoSetData actualData = actualResultSet.iterator().next(); assertEquals("setGuid", actualData.getGuid()); assertEquals("name", actualData.getName()); @@ -154,14 +156,14 @@ public class DispositionApiTest { @Test public void testGetDispoSetById() { - when(storage.findDispoSetsById(programId.getGuid(), setId.getGuid())).thenReturn(dispoSet); + when(storage.findDispoSetsById(program, setId.getGuid())).thenReturn(dispoSet); when(dispoSet.getName()).thenReturn("name"); when(dispoSet.getImportPath()).thenReturn("path"); when(dispoSet.getNotesList()).thenReturn(jsonArray); when(dispoSet.getGuid()).thenReturn("setGuid"); when(dispoSet.getStatusCount()).thenReturn("count"); - DispoSetData actual = dispoApi.getDispoSetById(programId.getGuid(), setId.getGuid()); + DispoSetData actual = dispoApi.getDispoSetById(program, setId.getGuid()); assertEquals("setGuid", actual.getGuid()); assertEquals("name", actual.getName()); assertEquals("path", actual.getImportPath()); @@ -172,7 +174,7 @@ public class DispositionApiTest { @Test public void testGetDispoItems() { ResultSet<DispoItem> dispoItemArts = ResultSets.singleton(dispoItem); - when(storage.findDipoItems(programId.getGuid(), setId.getGuid())).thenReturn(dispoItemArts); + when(storage.findDipoItems(program, setId.getGuid())).thenReturn(dispoItemArts); when(dispoItem.getName()).thenReturn("name"); when(dispoItem.getGuid()).thenReturn("itemGuid"); when(dispoItem.getCreationDate()).thenReturn(mockDate); @@ -181,7 +183,7 @@ public class DispositionApiTest { when(dispoItem.getDiscrepanciesList()).thenReturn(jsonArray); when(dispoItem.getAnnotationsList()).thenReturn(mockAnnotations); - ResultSet<DispoItemData> actualResultSet = dispoApi.getDispoItems(programId.getGuid(), setId.getGuid()); + ResultSet<DispoItemData> actualResultSet = dispoApi.getDispoItems(program, setId.getGuid()); DispoItemData actualData = actualResultSet.iterator().next(); assertEquals("itemGuid", actualData.getGuid()); assertEquals("name", actualData.getName()); @@ -194,7 +196,7 @@ public class DispositionApiTest { @Test public void testGetDispoItemById() { - when(storage.findDispoItemById(programId.getGuid(), itemId.getGuid())).thenReturn(dispoItem); + when(storage.findDispoItemById(program, itemId.getGuid())).thenReturn(dispoItem); when(dispoItem.getName()).thenReturn("name"); when(dispoItem.getGuid()).thenReturn("itemGuid"); when(dispoItem.getCreationDate()).thenReturn(mockDate); @@ -203,7 +205,7 @@ public class DispositionApiTest { when(dispoItem.getDiscrepanciesList()).thenReturn(jsonArray); when(dispoItem.getAnnotationsList()).thenReturn(mockAnnotations); - DispoItemData actualData = dispoApi.getDispoItemById(programId.getGuid(), itemId.getGuid()); + DispoItemData actualData = dispoApi.getDispoItemById(program, itemId.getGuid()); assertEquals("itemGuid", actualData.getGuid()); assertEquals("name", actualData.getName()); assertEquals(mockDate, actualData.getCreationDate()); @@ -216,7 +218,7 @@ public class DispositionApiTest { @Test public void getDispoAnnotations() throws JSONException { String annotId = "id"; - when(storage.findDispoItemById(programId.getGuid(), itemId.getGuid())).thenReturn(dispoItem); + when(storage.findDispoItemById(program, itemId.getGuid())).thenReturn(dispoItem); when(dispoItem.getAnnotationsList()).thenReturn(mockAnnotations); when(mockAnnotations.keys()).thenReturn(mockKeys); when(mockKeys.hasNext()).thenReturn(true, false); @@ -227,8 +229,7 @@ public class DispositionApiTest { when(jsonObject.has("locationRefs")).thenReturn(true); when(jsonObject.getString("locationRefs")).thenReturn("1-10"); - ResultSet<DispoAnnotationData> actualResultSet = - dispoApi.getDispoAnnotations(programId.getGuid(), itemId.getGuid()); + ResultSet<DispoAnnotationData> actualResultSet = dispoApi.getDispoAnnotations(program, itemId.getGuid()); DispoAnnotationData actualData = actualResultSet.iterator().next(); assertEquals(annotId, actualData.getId()); @@ -238,7 +239,7 @@ public class DispositionApiTest { @Test public void getDispoAnnotationByIndex() throws JSONException { String idOfAnnot = "idW"; - when(storage.findDispoItemById(programId.getGuid(), itemId.getGuid())).thenReturn(dispoItem); + when(storage.findDispoItemById(program, itemId.getGuid())).thenReturn(dispoItem); when(dispoItem.getAnnotationsList()).thenReturn(mockAnnotations); when(mockAnnotations.has(idOfAnnot)).thenReturn(true); when(mockAnnotations.getJSONObject(idOfAnnot)).thenReturn(jsonObject); @@ -246,8 +247,7 @@ public class DispositionApiTest { when(jsonObject.getString("id")).thenReturn(idOfAnnot); when(jsonObject.has("locationRefs")).thenReturn(true); when(jsonObject.getString("locationRefs")).thenReturn("1-10"); - DispoAnnotationData actualData = - dispoApi.getDispoAnnotationByIndex(programId.getGuid(), itemId.getGuid(), idOfAnnot); + DispoAnnotationData actualData = dispoApi.getDispoAnnotationByIndex(program, itemId.getGuid(), idOfAnnot); assertEquals(idOfAnnot, actualData.getId()); assertEquals("1-10", actualData.getLocationRefs()); @@ -263,15 +263,15 @@ public class DispositionApiTest { DispoSetData setFromDescriptor = new DispoSetData(); when(dataFactory.creteSetDataFromDescriptor(descriptor)).thenReturn(setFromDescriptor); - when(storage.createDispoSet(author, programId.getGuid(), setFromDescriptor)).thenReturn(mockArtId); - Identifiable<String> createDispoSetId = dispoApi.createDispoSet(programId.getGuid(), descriptor); + when(storage.createDispoSet(author, program, setFromDescriptor)).thenReturn(mockArtId); + Identifiable<String> createDispoSetId = dispoApi.createDispoSet(program, descriptor); assertEquals(mockArtId, createDispoSetId); } @Test public void testCreateDispositionItem() { ArtifactReadable x = null; - String programUuid = programId.getGuid(); + DispoProgram programUuid = program; String setUuid = setId.getGuid(); DispoItemData dispoItemData = new DispoItemData(); @@ -291,7 +291,7 @@ public class DispositionApiTest { ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class); String expectedId = "dfs"; DispoAnnotationData annotationToCreate = new DispoAnnotationData(); - when(storage.findDispoItemById(programId.getGuid(), itemId.getGuid())).thenReturn(dispoItem); + when(storage.findDispoItemById(program, itemId.getGuid())).thenReturn(dispoItem); when(dataFactory.getNewId()).thenReturn(expectedId); when(dispoItem.getAnnotationsList()).thenReturn(mockAnnotations); when(dispoItem.getDiscrepanciesList()).thenReturn(jsonArray); @@ -302,23 +302,23 @@ public class DispositionApiTest { // Only need to createUpdatedItem with updateStatus = True when annotation is valid and current status is INCOMPLETE annotationToCreate.setResolution("VALID"); when(dispoItem.getStatus()).thenReturn("COMPLETE"); // captor(0) - String acutal = dispoApi.createDispoAnnotation(programId.getGuid(), itemId.getGuid(), annotationToCreate); + String acutal = dispoApi.createDispoAnnotation(program, itemId.getGuid(), annotationToCreate); assertEquals(expectedId, acutal); when(dispoItem.getStatus()).thenReturn("PASS"); // captor(1) - acutal = dispoApi.createDispoAnnotation(programId.getGuid(), itemId.getGuid(), annotationToCreate); + acutal = dispoApi.createDispoAnnotation(program, itemId.getGuid(), annotationToCreate); assertEquals(expectedId, acutal); when(dispoItem.getStatus()).thenReturn("INCOMPLETE"); // captor(2) - acutal = dispoApi.createDispoAnnotation(programId.getGuid(), itemId.getGuid(), annotationToCreate); + acutal = dispoApi.createDispoAnnotation(program, itemId.getGuid(), annotationToCreate); assertEquals(expectedId, acutal); annotationToCreate.setResolution("INVALID"); // captor(3) - acutal = dispoApi.createDispoAnnotation(programId.getGuid(), itemId.getGuid(), annotationToCreate); + acutal = dispoApi.createDispoAnnotation(program, itemId.getGuid(), annotationToCreate); assertEquals(expectedId, acutal); - when(storage.findDispoItemById(programId.getGuid(), itemId.getGuid())).thenReturn(null); // shouldn't call dataFactory method - acutal = dispoApi.createDispoAnnotation(programId.getGuid(), itemId.getGuid(), annotationToCreate); + when(storage.findDispoItemById(program, itemId.getGuid())).thenReturn(null); // shouldn't call dataFactory method + acutal = dispoApi.createDispoAnnotation(program, itemId.getGuid(), annotationToCreate); assertEquals("", acutal); verify(dispoConnector, times(3)).connectAnnotation(annotationToCreate, jsonArray);// Only tried to connect 3 times, excluded when annotations was invalid @@ -335,21 +335,21 @@ public class DispositionApiTest { ArgumentCaptor<JSONArray> captor = ArgumentCaptor.forClass(JSONArray.class); DispoSetData newSet = new DispoSetData(); - when(storage.findDispoSetsById(programId.getGuid(), setId.getGuid())).thenReturn(dispoSet); + when(storage.findDispoSetsById(program, setId.getGuid())).thenReturn(dispoSet); when(dispoSet.getNotesList()).thenReturn(jsonArray); - boolean actual = dispoApi.editDispoSet(programId.getGuid(), setId.getGuid(), newSet); + boolean actual = dispoApi.editDispoSet(program, setId.getGuid(), newSet); assertTrue(actual); JSONArray setToEditNotes = new JSONArray(); newSet.setNotesList(setToEditNotes); - actual = dispoApi.editDispoSet(programId.getGuid(), setId.getGuid(), newSet); + actual = dispoApi.editDispoSet(program, setId.getGuid(), newSet); assertTrue(actual); // Only should have merged Json Arrays once since the first newSet didn't have a Json Array verify(dataFactory, times(1)).mergeJsonArrays(eq(jsonArray), captor.capture()); - when(storage.findDispoSetsById(programId.getGuid(), setId.getGuid())).thenReturn(null); - actual = dispoApi.editDispoSet(programId.getGuid(), setId.getGuid(), newSet); + when(storage.findDispoSetsById(program, setId.getGuid())).thenReturn(null); + actual = dispoApi.editDispoSet(program, setId.getGuid(), newSet); assertFalse(actual); } @@ -358,28 +358,28 @@ public class DispositionApiTest { ArgumentCaptor<JSONArray> captor = ArgumentCaptor.forClass(JSONArray.class); DispoItemData newItem = new DispoItemData(); - when(storage.findDispoItemById(programId.getGuid(), itemId.getGuid())).thenReturn(dispoItem); + when(storage.findDispoItemById(program, itemId.getGuid())).thenReturn(dispoItem); when(dispoItem.getDiscrepanciesList()).thenReturn(jsonArray); - boolean actual = dispoApi.editDispoItem(programId.getGuid(), itemId.getGuid(), newItem); + boolean actual = dispoApi.editDispoItem(program, itemId.getGuid(), newItem); assertTrue(actual); JSONArray discrepanciesList = new JSONArray(); newItem.setDiscrepanciesList(discrepanciesList); - actual = dispoApi.editDispoItem(programId.getGuid(), itemId.getGuid(), newItem); + actual = dispoApi.editDispoItem(program, itemId.getGuid(), newItem); assertTrue(actual); // Only should have merged Json Arrays once since the first newSet didn't have a Json Array verify(dataFactory, times(1)).mergeJsonArrays(eq(jsonArray), captor.capture()); newItem.setAnnotationsList(jsonObject); - actual = dispoApi.editDispoItem(programId.getGuid(), itemId.getGuid(), newItem); + actual = dispoApi.editDispoItem(program, itemId.getGuid(), newItem); assertFalse(actual); } @Test public void editDispoAnnotation() throws JSONException { DispoAnnotationData newAnnotation = new DispoAnnotationData(); - String programUuid = programId.getGuid(); + DispoProgram programUuid = program; String itemUuid = itemId.getGuid(); String expectedId = "1"; @@ -398,18 +398,18 @@ public class DispositionApiTest { // add location Ref to newAnnotation so that disconnect and connect are invoked newAnnotation.setLocationRefs("1-10"); - boolean actual = dispoApi.editDispoAnnotation(programId.getGuid(), itemId.getGuid(), expectedId, newAnnotation); + boolean actual = dispoApi.editDispoAnnotation(program, itemId.getGuid(), expectedId, newAnnotation); assertTrue(actual); // reset loc ref to null and set new (invalid) resolution newAnnotation.setLocationRefs(null); newAnnotation.setResolution("PCR 13"); // Since PCR validation isn't hooked up yet, only valid resolution is "VALID" - actual = dispoApi.editDispoAnnotation(programId.getGuid(), itemId.getGuid(), expectedId, newAnnotation); + actual = dispoApi.editDispoAnnotation(program, itemId.getGuid(), expectedId, newAnnotation); assertTrue(actual); // set to invalid, make sure connect is not invoked newAnnotation.setResolution("VALID"); // Since PCR validation isn't hooked up yet, only valid resolution is "VALID" - actual = dispoApi.editDispoAnnotation(programId.getGuid(), itemId.getGuid(), expectedId, newAnnotation); + actual = dispoApi.editDispoAnnotation(program, itemId.getGuid(), expectedId, newAnnotation); assertTrue(actual); // notes are the only thing being modified, no need to disconnect or connect @@ -417,7 +417,7 @@ public class DispositionApiTest { newAnnotation.setResolution(null); JSONArray newNotes = new JSONArray(); newAnnotation.setNotesList(newNotes); - actual = dispoApi.editDispoAnnotation(programId.getGuid(), itemId.getGuid(), expectedId, newAnnotation); + actual = dispoApi.editDispoAnnotation(program, itemId.getGuid(), expectedId, newAnnotation); assertTrue(actual); verify(dispoConnector, times(3)).disconnectAnnotation(any(DispoAnnotationData.class), eq(jsonArray)); @@ -427,7 +427,7 @@ public class DispositionApiTest { @Test public void deletDispoAnnotation() throws JSONException { - String programUuid = programId.getGuid(); + DispoProgram programUuid = program; String itemUuid = itemId.getGuid(); String expectedId = "1"; @@ -446,7 +446,7 @@ public class DispositionApiTest { annotationInvalid.put("isValid", false); when(jsonObject.getJSONObject(expectedId)).thenReturn(annotationInvalid); - boolean actual = dispoApi.deleteDispoAnnotation(programId.getGuid(), itemId.getGuid(), expectedId); + boolean actual = dispoApi.deleteDispoAnnotation(program, itemId.getGuid(), expectedId); verify(dispoConnector).disconnectAnnotation(any(DispoAnnotationData.class), eq(jsonArray)); verify(jsonObject).remove(expectedId); verify(dataFactory).createUpdatedItem(eq(jsonObject), eq(jsonArray), eq(false)); @@ -456,7 +456,7 @@ public class DispositionApiTest { JSONObject annotationValid = new JSONObject(); annotationValid.put("isValid", true); when(jsonObject.getJSONObject(expectedId)).thenReturn(annotationValid); - actual = dispoApi.deleteDispoAnnotation(programId.getGuid(), itemId.getGuid(), expectedId); + actual = dispoApi.deleteDispoAnnotation(program, itemId.getGuid(), expectedId); verify(dataFactory).createUpdatedItem(eq(jsonObject), eq(jsonArray), eq(true)); assertTrue(actual); } diff --git a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/AnnotationResourceTest.java b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/AnnotationResourceTest.java index 5aee1886435..30318e0d695 100644 --- a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/AnnotationResourceTest.java +++ b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/AnnotationResourceTest.java @@ -15,6 +15,7 @@ import static org.mockito.Mockito.when; import javax.ws.rs.core.Response; import org.eclipse.osee.disposition.model.DispoAnnotationData; import org.eclipse.osee.disposition.model.DispoMessages; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.rest.DispoApi; import org.eclipse.osee.disposition.rest.util.HtmlWriter; import org.eclipse.osee.framework.jdk.core.type.Identifiable; @@ -39,6 +40,8 @@ public class AnnotationResourceTest { private Identifiable<String> id1; @Mock private Identifiable<String> id2; + @Mock + private DispoProgram program; String mockId = "annotationID"; private AnnotationResource resource; @@ -46,7 +49,7 @@ public class AnnotationResourceTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); - resource = new AnnotationResource(dispositionApi, htmlWriter, "branchId", "setId", "itemId"); + resource = new AnnotationResource(dispositionApi, htmlWriter, program, "setId", "itemId"); when(id1.getGuid()).thenReturn("abcdef"); when(id2.getGuid()).thenReturn("fedcba"); } @@ -57,13 +60,13 @@ public class AnnotationResourceTest { annotationToCreate.setLocationRefs("1-10"); annotationToCreate.setId(mockId); - when(dispositionApi.createDispoAnnotation("branchId", "itemId", annotationToCreate)).thenReturn(mockId); - when(dispositionApi.getDispoAnnotationByIndex("branchId", "itemId", mockId)).thenReturn(annotationToCreate); + when(dispositionApi.createDispoAnnotation(program, "itemId", annotationToCreate)).thenReturn(mockId); + when(dispositionApi.getDispoAnnotationByIndex(program, "itemId", mockId)).thenReturn(annotationToCreate); DispoAnnotationData expectedAnnotation = new DispoAnnotationData(); expectedAnnotation.setLocationRefs(annotationToCreate.getLocationRefs()); expectedAnnotation.setId(mockId); - when(dispositionApi.getDispoAnnotationByIndex("branchId", id1.getGuid(), mockId)).thenReturn(expectedAnnotation); + when(dispositionApi.getDispoAnnotationByIndex(program, id1.getGuid(), mockId)).thenReturn(expectedAnnotation); Response postResponse = resource.postDispoAnnotation(annotationToCreate); DispoAnnotationData returnedEntity = (DispoAnnotationData) postResponse.getEntity(); @@ -87,7 +90,7 @@ public class AnnotationResourceTest { public void testGetAllAsHtml() { // No Annotations3 ResultSet<DispoAnnotationData> emptyResultSet = ResultSets.emptyResultSet(); - when(dispositionApi.getDispoAnnotations("branchId", "itemId")).thenReturn(emptyResultSet); + when(dispositionApi.getDispoAnnotations(program, "itemId")).thenReturn(emptyResultSet); Response noAnnotationsReponse = resource.getAllDispoAnnotations(); String messageActual = (String) noAnnotationsReponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noAnnotationsReponse.getStatus()); @@ -98,7 +101,7 @@ public class AnnotationResourceTest { annotation.setLocationRefs("1-10"); ResultSet<DispoAnnotationData> resultSet = ResultSets.singleton(annotation); - when(dispositionApi.getDispoAnnotations("branchId", "itemId")).thenReturn(resultSet); + when(dispositionApi.getDispoAnnotations(program, "itemId")).thenReturn(resultSet); when(htmlWriter.createDispositionPage("Annotations", "annotation/", resultSet)).thenReturn("htmlFromWriter"); Response oneSetResponse = resource.getAllDispoAnnotations(); String html = (String) oneSetResponse.getEntity(); @@ -109,7 +112,7 @@ public class AnnotationResourceTest { @Test public void testGetSingleAsJson() { // No items - when(dispositionApi.getDispoAnnotationByIndex("branchId", "itemId", mockId)).thenReturn(null); + when(dispositionApi.getDispoAnnotationByIndex(program, "itemId", mockId)).thenReturn(null); Response noAnnotationsResponse = resource.getAnnotationByIdJson(mockId); String messageActual = (String) noAnnotationsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noAnnotationsResponse.getStatus()); @@ -118,7 +121,7 @@ public class AnnotationResourceTest { DispoAnnotationData expectedAnnotation = new DispoAnnotationData(); expectedAnnotation.setId(mockId); expectedAnnotation.setLocationRefs("1-10"); - when(dispositionApi.getDispoAnnotationByIndex("branchId", "itemId", expectedAnnotation.getId())).thenReturn( + when(dispositionApi.getDispoAnnotationByIndex(program, "itemId", expectedAnnotation.getId())).thenReturn( expectedAnnotation); Response oneSetResponse = resource.getAnnotationByIdJson(expectedAnnotation.getId()); DispoAnnotationData returnedItem = (DispoAnnotationData) oneSetResponse.getEntity(); @@ -129,7 +132,7 @@ public class AnnotationResourceTest { @Test public void testGetSingleAsHtml() { // No Items - when(dispositionApi.getDispoAnnotationByIndex("branchId", "itemId", mockId)).thenReturn(null); + when(dispositionApi.getDispoAnnotationByIndex(program, "itemId", mockId)).thenReturn(null); Response noItemsResponse = resource.getAnnotationByIdHtml(mockId); String messageActual = (String) noItemsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noItemsResponse.getStatus()); @@ -140,7 +143,7 @@ public class AnnotationResourceTest { expectedAnnotation.setLocationRefs("1-10"); JSONArray notes = new JSONArray(); expectedAnnotation.setNotesList(notes); - when(dispositionApi.getDispoAnnotationByIndex("branchId", "itemId", expectedAnnotation.getId())).thenReturn( + when(dispositionApi.getDispoAnnotationByIndex(program, "itemId", expectedAnnotation.getId())).thenReturn( expectedAnnotation); when(htmlWriter.createDispoPage(expectedAnnotation.getName(), "", "", "[]")).thenReturn("htmlFromWriter"); Response response = resource.getAnnotationByIdHtml(expectedAnnotation.getId()); @@ -155,12 +158,12 @@ public class AnnotationResourceTest { newAnnotation.setLocationRefs("2-11"); DispoAnnotationData annotationToEdit = new DispoAnnotationData(); annotationToEdit.setId(mockId); - when(dispositionApi.editDispoAnnotation("branchId", "itemId", annotationToEdit.getId(), newAnnotation)).thenReturn( + when(dispositionApi.editDispoAnnotation(program, "itemId", annotationToEdit.getId(), newAnnotation)).thenReturn( true); Response response = resource.putDispoAnnotation(annotationToEdit.getId(), newAnnotation); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); - when(dispositionApi.editDispoAnnotation("branchId", "itemId", annotationToEdit.getId(), newAnnotation)).thenReturn( + when(dispositionApi.editDispoAnnotation(program, "itemId", annotationToEdit.getId(), newAnnotation)).thenReturn( false); response = resource.putDispoAnnotation(annotationToEdit.getId(), newAnnotation); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus()); @@ -170,11 +173,11 @@ public class AnnotationResourceTest { public void testDelete() { DispoAnnotationData annotationToEdit = new DispoAnnotationData(); annotationToEdit.setId(mockId); - when(dispositionApi.deleteDispoAnnotation("branchId", "itemId", annotationToEdit.getId())).thenReturn(true); + when(dispositionApi.deleteDispoAnnotation(program, "itemId", annotationToEdit.getId())).thenReturn(true); Response response = resource.deleteDispoAnnotation(annotationToEdit.getId()); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); - when(dispositionApi.deleteDispoAnnotation("branchId", "itemId", annotationToEdit.getId())).thenReturn(false); + when(dispositionApi.deleteDispoAnnotation(program, "itemId", annotationToEdit.getId())).thenReturn(false); response = resource.deleteDispoAnnotation(annotationToEdit.getId()); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus()); } diff --git a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoItemResourceTest.java b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoItemResourceTest.java index e25e07f54a4..aa369b07a39 100644 --- a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoItemResourceTest.java +++ b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoItemResourceTest.java @@ -16,6 +16,7 @@ import javax.ws.rs.core.Response; import org.eclipse.osee.disposition.model.DispoAnnotationData; import org.eclipse.osee.disposition.model.DispoItemData; import org.eclipse.osee.disposition.model.DispoMessages; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.rest.DispoApi; import org.eclipse.osee.disposition.rest.util.HtmlWriter; import org.eclipse.osee.framework.jdk.core.type.Identifiable; @@ -42,13 +43,15 @@ public class DispoItemResourceTest { private Identifiable<String> id2; @Mock private ArtifactReadable setArt; + @Mock + private DispoProgram program; private DispoItemResource resource; @Before public void setUp() { MockitoAnnotations.initMocks(this); - resource = new DispoItemResource(dispositionApi, htmlWriter, "branchId", "setId"); + resource = new DispoItemResource(dispositionApi, htmlWriter, program, "setId"); when(id1.getGuid()).thenReturn("abcdef"); when(id2.getGuid()).thenReturn("fedcba"); when(setArt.getGuid()).thenReturn("setId"); @@ -58,7 +61,7 @@ public class DispoItemResourceTest { public void testGetAllAsHtml() { // No Items ResultSet<DispoItemData> emptyResultSet = ResultSets.emptyResultSet(); - when(dispositionApi.getDispoItems("branchId", "setId")).thenReturn(emptyResultSet); + when(dispositionApi.getDispoItems(program, "setId")).thenReturn(emptyResultSet); Response noItemsResponse = resource.getAllDispoItems(); String messageActual = (String) noItemsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noItemsResponse.getStatus()); @@ -69,7 +72,7 @@ public class DispoItemResourceTest { item.setName("Item"); ResultSet<DispoItemData> resultSet = ResultSets.singleton(item); - when(dispositionApi.getDispoItems("branchId", "setId")).thenReturn(resultSet); + when(dispositionApi.getDispoItems(program, "setId")).thenReturn(resultSet); when(htmlWriter.createDispositionPage("Dispositionable Items", "item/", resultSet)).thenReturn("htmlFromWriter"); Response oneSetResponse = resource.getAllDispoItems(); String html = (String) oneSetResponse.getEntity(); @@ -80,7 +83,7 @@ public class DispoItemResourceTest { @Test public void testGetSingleSetAsJson() { // No items - when(dispositionApi.getDispoItemById("branchId", id2.getGuid())).thenReturn(null); + when(dispositionApi.getDispoItemById(program, id2.getGuid())).thenReturn(null); Response noItemsResponse = resource.getDispoItemsByIdJson(id2.getGuid()); String messageActual = (String) noItemsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noItemsResponse.getStatus()); @@ -89,7 +92,7 @@ public class DispoItemResourceTest { DispoItemData expectedItem = new DispoItemData(); expectedItem.setGuid(id1.getGuid()); expectedItem.setName("Item"); - when(dispositionApi.getDispoItemById("branchId", expectedItem.getGuid())).thenReturn(expectedItem); + when(dispositionApi.getDispoItemById(program, expectedItem.getGuid())).thenReturn(expectedItem); Response oneSetResponse = resource.getDispoItemsByIdJson(expectedItem.getGuid()); DispoItemData returnedItem = (DispoItemData) oneSetResponse.getEntity(); assertEquals(Response.Status.OK.getStatusCode(), oneSetResponse.getStatus()); @@ -99,7 +102,7 @@ public class DispoItemResourceTest { @Test public void testGetSingleSetAsHtml() { // No Items - when(dispositionApi.getDispoItemById("branchId", id2.getGuid())).thenReturn(null); + when(dispositionApi.getDispoItemById(program, id2.getGuid())).thenReturn(null); Response noItemsResponse = resource.getDispoItemsByIdHtml(id2.getGuid()); String messageActual = (String) noItemsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noItemsResponse.getStatus()); @@ -110,8 +113,8 @@ public class DispoItemResourceTest { item.setName("item"); ResultSet<DispoAnnotationData> emptyResultSet = ResultSets.emptyResultSet(); ResultSet<DispoAnnotationData> resultAnnotations = emptyResultSet; - when(dispositionApi.getDispoItemById("branchId", item.getGuid())).thenReturn(item); - when(dispositionApi.getDispoAnnotations("branchId", id1.getGuid())).thenReturn(resultAnnotations); + when(dispositionApi.getDispoItemById(program, item.getGuid())).thenReturn(item); + when(dispositionApi.getDispoAnnotations(program, id1.getGuid())).thenReturn(resultAnnotations); String prefixPath = item.getGuid() + "/annotation"; String subTitle = "Annotations"; when(htmlWriter.createDispoPage(item.getName(), prefixPath, subTitle, "[]")).thenReturn("htmlFromWriter"); @@ -126,11 +129,11 @@ public class DispoItemResourceTest { DispoItemData newItem = new DispoItemData(); DispoItemData itemToEdt = new DispoItemData(); itemToEdt.setGuid(id1.getGuid()); - when(dispositionApi.editDispoItem("branchId", id1.getGuid(), newItem)).thenReturn(true); + when(dispositionApi.editDispoItem(program, id1.getGuid(), newItem)).thenReturn(true); Response response = resource.putDispoItem(id1.getGuid(), newItem); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); - when(dispositionApi.editDispoItem("branchId", id1.getGuid(), newItem)).thenReturn(false); + when(dispositionApi.editDispoItem(program, id1.getGuid(), newItem)).thenReturn(false); response = resource.putDispoItem(id1.getGuid(), newItem); String returnedMessage = (String) response.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus()); @@ -141,11 +144,11 @@ public class DispoItemResourceTest { public void testDelete() { DispoItemData itemToEdt = new DispoItemData(); itemToEdt.setGuid(id1.getGuid()); - when(dispositionApi.deleteDispoItem("branchId", id1.getGuid())).thenReturn(true); + when(dispositionApi.deleteDispoItem(program, id1.getGuid())).thenReturn(true); Response response = resource.deleteDispoItem(id1.getGuid()); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); - when(dispositionApi.deleteDispoItem("branchId", id1.getGuid())).thenReturn(false); + when(dispositionApi.deleteDispoItem(program, id1.getGuid())).thenReturn(false); response = resource.deleteDispoItem(id1.getGuid()); String returnedMessage = (String) response.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus()); diff --git a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoProgramResourceTest.java b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoProgramResourceTest.java index 127ef753d20..e068fcf8a03 100644 --- a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoProgramResourceTest.java +++ b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoProgramResourceTest.java @@ -14,11 +14,12 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.when; import javax.ws.rs.core.Response; import org.eclipse.osee.disposition.model.DispoMessages; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.rest.DispoApi; +import org.eclipse.osee.disposition.rest.util.DispoFactory; import org.eclipse.osee.disposition.rest.util.HtmlWriter; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.core.data.TokenFactory; -import org.eclipse.osee.framework.jdk.core.type.Identifiable; import org.eclipse.osee.framework.jdk.core.type.ResultSet; import org.eclipse.osee.framework.jdk.core.type.ResultSets; import org.junit.Before; @@ -36,18 +37,22 @@ public class DispoProgramResourceTest { @Mock private HtmlWriter htmlWriter; @Mock - private Identifiable<String> id1; + private DispoProgram id1; @Mock - private Identifiable<String> id2; + private DispoProgram id2; + @Mock + private DispoFactory dispoFactory; private DispoProgramResource resource; @Before public void setUp() { MockitoAnnotations.initMocks(this); - resource = new DispoProgramResource(dispoApi, htmlWriter); + resource = new DispoProgramResource(dispoApi, htmlWriter, dispoFactory); when(id1.getGuid()).thenReturn("abcdef"); + when(id1.getUuid()).thenReturn(23L); when(id2.getGuid()).thenReturn("fedcba"); + when(id2.getUuid()).thenReturn(25L); } @Test @@ -74,19 +79,20 @@ public class DispoProgramResourceTest { @Test public void testGetProgramById() { // No Sets - when(dispoApi.getDispoProgramById(id2.getGuid())).thenReturn(null); - Response noSetsResponse = resource.getProgramById(id2.getGuid()); + when(dispoApi.getDispoProgramById(id2)).thenReturn(null); + Response noSetsResponse = resource.getProgramById(String.valueOf(id2.getUuid())); String messageActual = (String) noSetsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noSetsResponse.getStatus()); assertEquals(DispoMessages.Program_NotFound, messageActual); - IOseeBranch testBranch = TokenFactory.createBranch(id1.getGuid(), "testBranch"); - when(dispoApi.getDispoProgramById(id1.getGuid())).thenReturn(testBranch); - String prefixPath = testBranch.getGuid() + "/set"; + IOseeBranch testBranch = TokenFactory.createBranch(id1.getGuid(), id1.getUuid(), "testBranch"); + when(dispoFactory.createProgram(String.valueOf(id1.getUuid()))).thenReturn(id1); + when(dispoApi.getDispoProgramById(id1)).thenReturn(testBranch); + String prefixPath = testBranch.getUuid() + "/set"; String subTitle = "Disposition Sets"; when(htmlWriter.createDispoPage(testBranch.getName(), prefixPath, subTitle, "[]")).thenReturn("htmlFromWriter"); - Response response = resource.getProgramById(testBranch.getGuid()); + Response response = resource.getProgramById(String.valueOf(testBranch.getUuid())); String returnedHtml = (String) response.getEntity(); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); assertEquals("htmlFromWriter", returnedHtml); diff --git a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoSetResourceTest.java b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoSetResourceTest.java index 2635a600f0d..169c89b08d4 100644 --- a/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoSetResourceTest.java +++ b/plugins/org.eclipse.osee.disposition.rest.test/src/org/eclipse/osee/disposition/rest/resources/DispoSetResourceTest.java @@ -15,6 +15,7 @@ import static org.mockito.Mockito.when; import javax.ws.rs.core.Response; import org.eclipse.osee.disposition.model.DispoItemData; import org.eclipse.osee.disposition.model.DispoMessages; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSetData; import org.eclipse.osee.disposition.model.DispoSetDescriptorData; import org.eclipse.osee.disposition.rest.DispoApi; @@ -41,13 +42,15 @@ public class DispoSetResourceTest { private Identifiable<String> id1; @Mock private Identifiable<String> id2; + @Mock + private DispoProgram program; private DispoSetResource resource; @Before public void setUp() { MockitoAnnotations.initMocks(this); - resource = new DispoSetResource(dispositionApi, htmlWriter, "branchId"); + resource = new DispoSetResource(dispositionApi, htmlWriter, program); when(id1.getGuid()).thenReturn("abcdef"); when(id2.getGuid()).thenReturn("fedcba"); } @@ -63,9 +66,9 @@ public class DispoSetResourceTest { expected.setGuid(id1.getGuid()); expected.setName(descriptor.getName()); expected.setImportPath(descriptor.getImportPath()); - when(dispositionApi.createDispoSet("branchId", descriptor)).thenReturn(id1); - when(dispositionApi.getDispoSetById("branchId", id1.getGuid())).thenReturn(expected); - when(dispositionApi.isUniqueSetName("branchId", descriptor.getName())).thenReturn(true); + when(dispositionApi.createDispoSet(program, descriptor)).thenReturn(id1); + when(dispositionApi.getDispoSetById(program, id1.getGuid())).thenReturn(expected); + when(dispositionApi.isUniqueSetName(program, descriptor.getName())).thenReturn(true); Response postResponse = resource.postDispoSet(descriptor); DispoSetData returnedEntity = (DispoSetData) postResponse.getEntity(); @@ -102,7 +105,7 @@ public class DispoSetResourceTest { descriptor.setName("Name"); descriptor.setImportPath("c:"); - when(dispositionApi.isUniqueSetName("branchId", descriptor.getName())).thenReturn(false); + when(dispositionApi.isUniqueSetName(program, descriptor.getName())).thenReturn(false); Response postResponse = resource.postDispoSet(descriptor); String returnedEntity = (String) postResponse.getEntity(); @@ -114,7 +117,7 @@ public class DispoSetResourceTest { public void testGetAllAsHtml() { // No Sets ResultSet<DispoSetData> emptyResultSet = ResultSets.emptyResultSet(); - when(dispositionApi.getDispoSets("branchId")).thenReturn(emptyResultSet); + when(dispositionApi.getDispoSets(program)).thenReturn(emptyResultSet); Response noSetsResponse = resource.getAllDispoSets(); String messageActual = (String) noSetsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noSetsResponse.getStatus()); @@ -125,7 +128,7 @@ public class DispoSetResourceTest { set.setName("Set"); ResultSet<DispoSetData> resultSet = ResultSets.singleton(set); - when(dispositionApi.getDispoSets("branchId")).thenReturn(resultSet); + when(dispositionApi.getDispoSets(program)).thenReturn(resultSet); when(htmlWriter.createDispositionPage("Disposition Sets", "set/", resultSet)).thenReturn("htmlFromWriter"); Response oneSetResponse = resource.getAllDispoSets(); String html = (String) oneSetResponse.getEntity(); @@ -136,7 +139,7 @@ public class DispoSetResourceTest { @Test public void testGetSingleSetAsJson() { // No Sets - when(dispositionApi.getDispoSetById("branchId", id2.getGuid())).thenReturn(null); + when(dispositionApi.getDispoSetById(program, id2.getGuid())).thenReturn(null); Response noSetsResponse = resource.getDispoSetByIdJson(id2.getGuid()); String messageActual = (String) noSetsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noSetsResponse.getStatus()); @@ -145,7 +148,7 @@ public class DispoSetResourceTest { DispoSetData expectedSet = new DispoSetData(); expectedSet.setGuid(id1.getGuid()); expectedSet.setName("Set"); - when(dispositionApi.getDispoSetById("branchId", expectedSet.getGuid())).thenReturn(expectedSet); + when(dispositionApi.getDispoSetById(program, expectedSet.getGuid())).thenReturn(expectedSet); Response oneSetResponse = resource.getDispoSetByIdJson(expectedSet.getGuid()); DispoSetData returnedSet = (DispoSetData) oneSetResponse.getEntity(); assertEquals(Response.Status.OK.getStatusCode(), oneSetResponse.getStatus()); @@ -155,7 +158,7 @@ public class DispoSetResourceTest { @Test public void testGetSingleSetAsHtml() { // No Sets - when(dispositionApi.getDispoSetById("branchId", id2.getGuid())).thenReturn(null); + when(dispositionApi.getDispoSetById(program, id2.getGuid())).thenReturn(null); Response noSetsResponse = resource.getDispoSetByIdHtml(id2.getGuid()); String messageActual = (String) noSetsResponse.getEntity(); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), noSetsResponse.getStatus()); @@ -168,8 +171,8 @@ public class DispoSetResourceTest { set.setNotesList(notesArray); ResultSet<DispoItemData> emptyResultSet = ResultSets.emptyResultSet(); ResultSet<DispoItemData> resultListItems = emptyResultSet; - when(dispositionApi.getDispoSetById("branchId", id1.getGuid())).thenReturn(set); - when(dispositionApi.getDispoItems("branchId", id1.getGuid())).thenReturn(resultListItems); + when(dispositionApi.getDispoSetById(program, id1.getGuid())).thenReturn(set); + when(dispositionApi.getDispoItems(program, id1.getGuid())).thenReturn(resultListItems); String prefixPath = set.getGuid() + "/item"; String subTitle = "Dispositionable Items"; when(htmlWriter.createDispoPage(set.getName(), prefixPath, subTitle, "[]")).thenReturn("htmlFromWriter"); @@ -184,11 +187,11 @@ public class DispoSetResourceTest { DispoSetData newSet = new DispoSetData(); DispoSetData setToEdt = new DispoSetData(); setToEdt.setGuid(id1.getGuid()); - when(dispositionApi.editDispoSet("branchId", id1.getGuid(), newSet)).thenReturn(true); + when(dispositionApi.editDispoSet(program, id1.getGuid(), newSet)).thenReturn(true); Response response = resource.putDispoSet(id1.getGuid(), newSet); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); - when(dispositionApi.editDispoSet("branchId", id1.getGuid(), newSet)).thenReturn(false); + when(dispositionApi.editDispoSet(program, id1.getGuid(), newSet)).thenReturn(false); response = resource.putDispoSet(id1.getGuid(), newSet); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus()); } @@ -197,11 +200,11 @@ public class DispoSetResourceTest { public void testDelete() { DispoSetData setToEdt = new DispoSetData(); setToEdt.setGuid(id1.getGuid()); - when(dispositionApi.deleteDispoSet("branchId", id1.getGuid())).thenReturn(true); + when(dispositionApi.deleteDispoSet(program, id1.getGuid())).thenReturn(true); Response response = resource.deleteDispoSet(id1.getGuid()); assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); - when(dispositionApi.deleteDispoSet("branchId", id1.getGuid())).thenReturn(false); + when(dispositionApi.deleteDispoSet(program, id1.getGuid())).thenReturn(false); response = resource.deleteDispoSet(id1.getGuid()); assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatus()); } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/DispoApi.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/DispoApi.java index 674b59365d5..c368d21418d 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/DispoApi.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/DispoApi.java @@ -12,8 +12,10 @@ package org.eclipse.osee.disposition.rest; import org.eclipse.osee.disposition.model.DispoAnnotationData; import org.eclipse.osee.disposition.model.DispoItemData; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSetData; import org.eclipse.osee.disposition.model.DispoSetDescriptorData; +import org.eclipse.osee.disposition.rest.util.DispoFactory; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.jdk.core.type.Identifiable; import org.eclipse.osee.framework.jdk.core.type.ResultSet; @@ -25,46 +27,48 @@ public interface DispoApi { // Queries - IOseeBranch getDispoProgramById(String programId); + IOseeBranch getDispoProgramById(DispoProgram program); ResultSet<IOseeBranch> getDispoPrograms(); - ResultSet<DispoSetData> getDispoSets(String programId); + ResultSet<DispoSetData> getDispoSets(DispoProgram program); - DispoSetData getDispoSetById(String programId, String dispoSetId); + DispoSetData getDispoSetById(DispoProgram program, String dispoSetId); - ResultSet<DispoItemData> getDispoItems(String programId, String dispoSetId); + ResultSet<DispoItemData> getDispoItems(DispoProgram program, String dispoSetId); - DispoItemData getDispoItemById(String programId, String itemId); + DispoItemData getDispoItemById(DispoProgram program, String itemId); - ResultSet<DispoAnnotationData> getDispoAnnotations(String programId, String itemId); + ResultSet<DispoAnnotationData> getDispoAnnotations(DispoProgram program, String itemId); - DispoAnnotationData getDispoAnnotationByIndex(String programId, String itemId, String annotationId); + DispoAnnotationData getDispoAnnotationByIndex(DispoProgram program, String itemId, String annotationId); // Writes - Identifiable<String> createDispoSet(String programId, DispoSetDescriptorData descriptor); + Identifiable<String> createDispoSet(DispoProgram program, DispoSetDescriptorData descriptor); - Identifiable<String> createDispoItem(String programId, String setId, DispoItemData dispoItem); + Identifiable<String> createDispoItem(DispoProgram program, String setId, DispoItemData dispoItem); - String createDispoAnnotation(String programId, String itemId, DispoAnnotationData annotation); + String createDispoAnnotation(DispoProgram program, String itemId, DispoAnnotationData annotation); - boolean editDispoSet(String programId, String dispoSetId, DispoSetData newDispoSet); + boolean editDispoSet(DispoProgram program, String dispoSetId, DispoSetData newDispoSet); - boolean editDispoItem(String programId, String itemId, DispoItemData newDispoItem); + boolean editDispoItem(DispoProgram program, String itemId, DispoItemData newDispoItem); - boolean editDispoAnnotation(String programId, String itemId, String annotationId, DispoAnnotationData newAnnotation); + boolean editDispoAnnotation(DispoProgram program, String itemId, String annotationId, DispoAnnotationData newAnnotation); // Deletes - boolean deleteDispoSet(String programId, String dispoSetId); + boolean deleteDispoSet(DispoProgram program, String dispoSetId); - boolean deleteDispoItem(String programId, String itemId); + boolean deleteDispoItem(DispoProgram program, String itemId); - boolean deleteDispoAnnotation(String programId, String itemId, String annotationId); + boolean deleteDispoAnnotation(DispoProgram program, String itemId, String annotationId); // Utilities - boolean isUniqueSetName(String programId, String setName); + boolean isUniqueSetName(DispoProgram program, String setName); - boolean isUniqueItemName(String programId, String setId, String itemName); + boolean isUniqueItemName(DispoProgram program, String setId, String itemName); + + DispoFactory getDispoFactory(); } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java index cfc15601688..901f5d3d1e5 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoApiImpl.java @@ -18,10 +18,12 @@ import java.util.List; import org.eclipse.osee.disposition.model.DispoAnnotationData; import org.eclipse.osee.disposition.model.DispoItem; import org.eclipse.osee.disposition.model.DispoItemData; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSet; import org.eclipse.osee.disposition.model.DispoSetData; import org.eclipse.osee.disposition.model.DispoSetDescriptorData; import org.eclipse.osee.disposition.rest.DispoApi; +import org.eclipse.osee.disposition.rest.util.DispoFactory; import org.eclipse.osee.disposition.rest.util.DispoUtil; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.jdk.core.type.Identifiable; @@ -44,6 +46,7 @@ public class DispoApiImpl implements DispoApi { private StorageProvider storageProvider; private DispoDataFactory dataFactory; private DispoConnector dispoConnector; + private DispoFactory dispoFactory; public void setLogger(Log logger) { this.logger = logger; @@ -63,6 +66,7 @@ public class DispoApiImpl implements DispoApi { public void start() { logger.trace("Starting DispoApiImpl..."); + dispoFactory = new DispoFactoryImpl(); } public void stop() { @@ -78,29 +82,29 @@ public class DispoApiImpl implements DispoApi { } @Override - public Identifiable<String> createDispoSet(String programId, DispoSetDescriptorData descriptor) { + public Identifiable<String> createDispoSet(DispoProgram program, DispoSetDescriptorData descriptor) { DispoSetData newSet = dataFactory.creteSetDataFromDescriptor(descriptor); ArtifactReadable author = getQuery().findUser(); - return getWriter().createDispoSet(author, programId, newSet); + return getWriter().createDispoSet(author, program, newSet); } @Override - public Identifiable<String> createDispoItem(String programId, String setId, DispoItemData dispoItem) { - DispoSet parentSet = getQuery().findDispoSetsById(programId, setId); + public Identifiable<String> createDispoItem(DispoProgram program, String setId, DispoItemData dispoItem) { + DispoSet parentSet = getQuery().findDispoSetsById(program, setId); Identifiable<String> itemId = null; if (parentSet != null) { ArtifactReadable author = getQuery().findUser(); ArtifactReadable unassignedUser = getQuery().findUnassignedUser(); dataFactory.initDispoItem(dispoItem); - itemId = getWriter().createDispoItem(author, programId, parentSet, dispoItem, unassignedUser); + itemId = getWriter().createDispoItem(author, program, parentSet, dispoItem, unassignedUser); } return itemId; } @Override - public String createDispoAnnotation(String programId, String itemId, DispoAnnotationData annotationToCreate) { + public String createDispoAnnotation(DispoProgram program, String itemId, DispoAnnotationData annotationToCreate) { String idOfNewAnnotation = ""; - DispoItem dispoItem = getQuery().findDispoItemById(programId, itemId); + DispoItem dispoItem = getQuery().findDispoItemById(program, itemId); if (dispoItem != null) { dataFactory.initAnnotation(annotationToCreate); idOfNewAnnotation = dataFactory.getNewId(); @@ -131,15 +135,15 @@ public class DispoApiImpl implements DispoApi { } DispoItem updatedItem = dataFactory.createUpdatedItem(annotationsList, discrepanciesList, updateStatus); ArtifactReadable author = getQuery().findUser(); - getWriter().updateDispoItem(author, programId, dispoItem.getGuid(), updatedItem); + getWriter().updateDispoItem(author, program, dispoItem.getGuid(), updatedItem); } return idOfNewAnnotation; } @Override - public boolean editDispoSet(String programId, String setId, DispoSetData newSet) throws OseeCoreException { + public boolean editDispoSet(DispoProgram program, String setId, DispoSetData newSet) throws OseeCoreException { boolean wasUpdated = false; - DispoSet dispSetToEdit = getQuery().findDispoSetsById(programId, setId); + DispoSet dispSetToEdit = getQuery().findDispoSetsById(program, setId); if (dispSetToEdit != null) { if (newSet.getNotesList() != null) { JSONArray mergedNotesList = @@ -152,22 +156,22 @@ public class DispoApiImpl implements DispoApi { } ArtifactReadable author = getQuery().findUser(); - getWriter().updateDispoSet(author, programId, dispSetToEdit.getGuid(), newSet); + getWriter().updateDispoSet(author, program, dispSetToEdit.getGuid(), newSet); wasUpdated = true; } return wasUpdated; } @Override - public boolean deleteDispoSet(String programId, String setId) { + public boolean deleteDispoSet(DispoProgram program, String setId) { ArtifactReadable author = getQuery().findUser(); - return getWriter().deleteDispoSet(author, programId, setId); + return getWriter().deleteDispoSet(author, program, setId); } @Override - public boolean editDispoItem(String programId, String itemId, DispoItemData newDispoItem) { + public boolean editDispoItem(DispoProgram program, String itemId, DispoItemData newDispoItem) { boolean wasUpdated = false; - DispoItem dispoItemToEdit = getQuery().findDispoItemById(programId, itemId); + DispoItem dispoItemToEdit = getQuery().findDispoItemById(program, itemId); if (dispoItemToEdit != null && newDispoItem.getAnnotationsList() == null) { // We will not allow them to do mass edit of Annotations // Check to see if we are editing the discrepancies @@ -179,22 +183,22 @@ public class DispoApiImpl implements DispoApi { } ArtifactReadable author = getQuery().findUser(); - getWriter().updateDispoItem(author, programId, dispoItemToEdit.getGuid(), newDispoItem); + getWriter().updateDispoItem(author, program, dispoItemToEdit.getGuid(), newDispoItem); wasUpdated = true; } return wasUpdated; } @Override - public boolean deleteDispoItem(String programId, String itemId) { + public boolean deleteDispoItem(DispoProgram program, String itemId) { ArtifactReadable author = getQuery().findUser(); - return getWriter().deleteDispoItem(author, programId, itemId); + return getWriter().deleteDispoItem(author, program, itemId); } @Override - public boolean editDispoAnnotation(String programId, String itemId, String annotationId, DispoAnnotationData newAnnotation) { + public boolean editDispoAnnotation(DispoProgram program, String itemId, String annotationId, DispoAnnotationData newAnnotation) { boolean wasUpdated = false; - DispoItem dispoItem = getQuery().findDispoItemById(programId, itemId); + DispoItem dispoItem = getQuery().findDispoItemById(program, itemId); if (dispoItem != null) { JSONObject annotationsList = dispoItem.getAnnotationsList(); JSONArray discrepanciesList = dispoItem.getDiscrepanciesList(); @@ -233,7 +237,7 @@ public class DispoApiImpl implements DispoApi { DispoItem updatedItem = dataFactory.createUpdatedItem(annotationsList, discrepanciesList, true); ArtifactReadable author = getQuery().findUser(); - getWriter().updateDispoItem(author, programId, dispoItem.getGuid(), updatedItem); + getWriter().updateDispoItem(author, program, dispoItem.getGuid(), updatedItem); wasUpdated = true; } catch (JSONException ex) { throw new OseeCoreException(ex); @@ -243,9 +247,9 @@ public class DispoApiImpl implements DispoApi { } @Override - public boolean deleteDispoAnnotation(String programId, String itemId, String annotationId) { + public boolean deleteDispoAnnotation(DispoProgram program, String itemId, String annotationId) { boolean wasUpdated = false; - DispoItem dispoItem = getQuery().findDispoItemById(programId, itemId); + DispoItem dispoItem = getQuery().findDispoItemById(program, itemId); if (dispoItem != null) { JSONObject annotationsList = dispoItem.getAnnotationsList(); JSONArray discrepanciesList = dispoItem.getDiscrepanciesList(); @@ -263,7 +267,7 @@ public class DispoApiImpl implements DispoApi { DispoItem updatedItem = dataFactory.createUpdatedItem(annotationsList, discrepanciesList, updateStatus); ArtifactReadable author = getQuery().findUser(); - getWriter().updateDispoItem(author, programId, dispoItem.getGuid(), updatedItem); + getWriter().updateDispoItem(author, program, dispoItem.getGuid(), updatedItem); wasUpdated = true; } catch (JSONException ex) { throw new OseeCoreException(ex); @@ -283,29 +287,29 @@ public class DispoApiImpl implements DispoApi { } @Override - public IOseeBranch getDispoProgramById(String programId) { - return getQuery().findProgramId(programId); + public IOseeBranch getDispoProgramById(DispoProgram program) { + return getQuery().findProgramId(program); } @Override - public ResultSet<DispoSetData> getDispoSets(String programId) throws OseeCoreException { - return translateAllToDispoSetData(getQuery().findDispoSets(programId)); + public ResultSet<DispoSetData> getDispoSets(DispoProgram program) throws OseeCoreException { + return translateAllToDispoSetData(getQuery().findDispoSets(program)); } @Override - public DispoSetData getDispoSetById(String programId, String setId) throws OseeCoreException { - return DispoUtil.setArtToSetData(getQuery().findDispoSetsById(programId, setId)); + public DispoSetData getDispoSetById(DispoProgram program, String setId) throws OseeCoreException { + return DispoUtil.setArtToSetData(getQuery().findDispoSetsById(program, setId)); } @Override - public ResultSet<DispoItemData> getDispoItems(String programId, String setArtId) { - return translateAllToDispoItemData(getQuery().findDipoItems(programId, setArtId)); + public ResultSet<DispoItemData> getDispoItems(DispoProgram program, String setArtId) { + return translateAllToDispoItemData(getQuery().findDipoItems(program, setArtId)); } @Override - public DispoItemData getDispoItemById(String programId, String itemId) { + public DispoItemData getDispoItemById(DispoProgram program, String itemId) { DispoItemData dispositionableItem; - DispoItem result = getQuery().findDispoItemById(programId, itemId); + DispoItem result = getQuery().findDispoItemById(program, itemId); if (result != null) { dispositionableItem = DispoUtil.itemArtToItemData(result); } else { @@ -315,9 +319,9 @@ public class DispoApiImpl implements DispoApi { } @Override - public ResultSet<DispoAnnotationData> getDispoAnnotations(String programId, String itemId) { + public ResultSet<DispoAnnotationData> getDispoAnnotations(DispoProgram program, String itemId) { List<DispoAnnotationData> toReturn = new ArrayList<DispoAnnotationData>(); - DispoItem dispoItem = getQuery().findDispoItemById(programId, itemId); + DispoItem dispoItem = getQuery().findDispoItemById(program, itemId); JSONObject annotationsList = dispoItem.getAnnotationsList(); @SuppressWarnings("unchecked") Iterator<String> keys = annotationsList.keys(); @@ -332,9 +336,9 @@ public class DispoApiImpl implements DispoApi { } @Override - public DispoAnnotationData getDispoAnnotationByIndex(String programId, String itemId, String annotationId) { + public DispoAnnotationData getDispoAnnotationByIndex(DispoProgram program, String itemId, String annotationId) { DispoAnnotationData toReturn = new DispoAnnotationData(); - DispoItem dispoItem = getQuery().findDispoItemById(programId, itemId); + DispoItem dispoItem = getQuery().findDispoItemById(program, itemId); JSONObject annotationsList = dispoItem.getAnnotationsList(); if (annotationsList.has(annotationId)) { try { @@ -349,13 +353,13 @@ public class DispoApiImpl implements DispoApi { } @Override - public boolean isUniqueSetName(String programId, String name) { - return getQuery().isUniqueSetName(programId, name); + public boolean isUniqueSetName(DispoProgram program, String name) { + return getQuery().isUniqueSetName(program, name); } @Override - public boolean isUniqueItemName(String programId, String setId, String name) { - return getQuery().isUniqueItemName(programId, setId, name); + public boolean isUniqueItemName(DispoProgram program, String setId, String name) { + return getQuery().isUniqueItemName(program, setId, name); } private ResultSet<DispoItemData> translateAllToDispoItemData(ResultSet<DispoItem> list) { @@ -384,4 +388,9 @@ public class DispoApiImpl implements DispoApi { return resolution.equals("VALID"); // Add PCR validation Functionality here } + + @Override + public DispoFactory getDispoFactory() { + return dispoFactory; + } } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoFactoryImpl.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoFactoryImpl.java new file mode 100644 index 00000000000..dd6e8ba0101 --- /dev/null +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoFactoryImpl.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2013 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.disposition.rest.internal; + +import org.eclipse.osee.disposition.model.DispoProgram; +import org.eclipse.osee.disposition.model.DispoProgramImpl; +import org.eclipse.osee.disposition.rest.util.DispoFactory; +import org.eclipse.osee.framework.core.data.IOseeBranch; + +/** + * @author Donald G. Dunne + */ +public class DispoFactoryImpl implements DispoFactory { + + @Override + public DispoProgram createProgram(String name) { + return createProgram(name, name, new Long(name.hashCode())); + } + + @Override + public DispoProgram createProgram(String name, String guid, Long uuid) { + return new DispoProgramImpl(name, guid, uuid); + } + + @Override + public DispoProgram createProgram(IOseeBranch branch) { + return new DispoProgramImpl(branch.getName(), branch.getGuid(), branch.getUuid()); + } +} diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoQuery.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoQuery.java index 276de5533d3..0a10518c848 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoQuery.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoQuery.java @@ -11,6 +11,7 @@ package org.eclipse.osee.disposition.rest.internal; import org.eclipse.osee.disposition.model.DispoItem; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSet; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.jdk.core.type.ResultSet; @@ -27,19 +28,19 @@ public interface DispoQuery { ArtifactReadable findUnassignedUser(); - boolean isUniqueSetName(String programId, String name); + boolean isUniqueSetName(DispoProgram program, String name); - boolean isUniqueItemName(String programId, String setId, String name); + boolean isUniqueItemName(DispoProgram program, String setId, String name); - ResultSet<DispoSet> findDispoSets(String programId); + ResultSet<DispoSet> findDispoSets(DispoProgram program); - DispoSet findDispoSetsById(String programId, String id); + DispoSet findDispoSetsById(DispoProgram program, String id); - ResultSet<DispoItem> findDipoItems(String programId, String setId); + ResultSet<DispoItem> findDipoItems(DispoProgram program, String setId); - DispoItem findDispoItemById(String programId, String itemId); + DispoItem findDispoItemById(DispoProgram program, String itemId); ResultSet<? extends IOseeBranch> findBaselineBranches(); - IOseeBranch findProgramId(String programID); + IOseeBranch findProgramId(DispoProgram program); }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoWriter.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoWriter.java index 1aa244a1754..306c242bd06 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoWriter.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/DispoWriter.java @@ -11,6 +11,7 @@ package org.eclipse.osee.disposition.rest.internal; import org.eclipse.osee.disposition.model.DispoItem; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSet; import org.eclipse.osee.framework.jdk.core.type.Identifiable; import org.eclipse.osee.orcs.data.ArtifactId; @@ -21,17 +22,17 @@ import org.eclipse.osee.orcs.data.ArtifactReadable; */ public interface DispoWriter { - Identifiable<String> createDispoSet(ArtifactReadable author, String programId, DispoSet descriptor); + Identifiable<String> createDispoSet(ArtifactReadable author, DispoProgram program, DispoSet descriptor); - void updateDispoSet(ArtifactReadable author, String programId, String dispoSetId, DispoSet data); + void updateDispoSet(ArtifactReadable author, DispoProgram program, String dispoSetId, DispoSet data); - boolean deleteDispoSet(ArtifactReadable author, String programId, String setId); + boolean deleteDispoSet(ArtifactReadable author, DispoProgram program, String setId); - Identifiable<String> createDispoItem(ArtifactReadable author, String programId, DispoSet parentSet, DispoItem itemToCreate, ArtifactReadable assigneeId); + Identifiable<String> createDispoItem(ArtifactReadable author, DispoProgram program, DispoSet parentSet, DispoItem itemToCreate, ArtifactReadable assigneeId); - void updateDispoItem(ArtifactReadable author, String programId, String itemToEditId, DispoItem itemToCreate); + void updateDispoItem(ArtifactReadable author, DispoProgram program, String itemToEditId, DispoItem itemToCreate); - boolean deleteDispoItem(ArtifactReadable author, String programId, String itemId); + boolean deleteDispoItem(ArtifactReadable author, DispoProgram program, String itemId); - void createAnnotation(ArtifactReadable author, String programId, ArtifactId dispoItem, String annotationsJson); + void createAnnotation(ArtifactReadable author, DispoProgram program, ArtifactId dispoItem, String annotationsJson); }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/OrcsStorageImpl.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/OrcsStorageImpl.java index 10de9432794..da498dfa159 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/OrcsStorageImpl.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/internal/OrcsStorageImpl.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.eclipse.osee.disposition.model.DispoItem; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSet; import org.eclipse.osee.disposition.rest.DispoConstants; import org.eclipse.osee.framework.core.data.IArtifactType; @@ -142,8 +143,8 @@ public class OrcsStorageImpl implements Storage { } @Override - public boolean isUniqueSetName(String branchId, String name) { - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + public boolean isUniqueSetName(DispoProgram program, String name) { + IOseeBranch branch = getProgramBranch(program); ResultSet<ArtifactReadable> results = getQuery()// .fromBranch(branch)// .andTypeEquals(DispoConstants.DispoSet)// @@ -153,9 +154,13 @@ public class OrcsStorageImpl implements Storage { return results.isEmpty(); } + private IOseeBranch getProgramBranch(DispoProgram program) { + return TokenFactory.createBranch(program.getGuid(), program.getUuid(), program.getName()); + } + @Override - public boolean isUniqueItemName(String branchId, String setId, String name) { - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + public boolean isUniqueItemName(DispoProgram program, String setId, String name) { + IOseeBranch branch = getProgramBranch(program); ArtifactReadable setArt = findDispoArtifact(branch, setId, DispoConstants.DispoSet); ResultSet<ArtifactReadable> results = getQuery()// .fromBranch(branch)// @@ -168,8 +173,8 @@ public class OrcsStorageImpl implements Storage { } @Override - public ResultSet<DispoSet> findDispoSets(String branchId) { - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + public ResultSet<DispoSet> findDispoSets(DispoProgram program) { + IOseeBranch branch = getProgramBranch(program); ResultSet<ArtifactReadable> results = getQuery()// .fromBranch(branch)// .andTypeEquals(DispoConstants.DispoSet)// @@ -183,8 +188,8 @@ public class OrcsStorageImpl implements Storage { } @Override - public DispoSet findDispoSetsById(String branchId, String setId) { - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + public DispoSet findDispoSetsById(DispoProgram program, String setId) { + IOseeBranch branch = getProgramBranch(program); ArtifactReadable result = findDispoArtifact(branch, setId, DispoConstants.DispoSet); return new DispoSetArtifact(result); } @@ -198,8 +203,8 @@ public class OrcsStorageImpl implements Storage { } @Override - public ResultSet<DispoItem> findDipoItems(String branchId, String setId) { - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + public ResultSet<DispoItem> findDipoItems(DispoProgram program, String setId) { + IOseeBranch branch = getProgramBranch(program); ArtifactReadable setArt = findDispoArtifact(branch, setId, DispoConstants.DispoSet); ResultSet<ArtifactReadable> results = setArt.getRelated(CoreRelationTypes.Default_Hierarchical__Child); @@ -211,9 +216,9 @@ public class OrcsStorageImpl implements Storage { } @Override - public DispoItem findDispoItemById(String branchId, String itemId) { + public DispoItem findDispoItemById(DispoProgram program, String itemId) { DispoItem toReturn = null; - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + IOseeBranch branch = getProgramBranch(program); ArtifactReadable dispoArtifact = findDispoArtifact(branch, itemId, DispoConstants.DispoItem); if (dispoArtifact != null) { toReturn = new DispoItemArtifact(dispoArtifact); @@ -222,8 +227,8 @@ public class OrcsStorageImpl implements Storage { } @Override - public Identifiable<String> createDispoSet(ArtifactReadable author, String branchId, DispoSet descriptor) { - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + public Identifiable<String> createDispoSet(ArtifactReadable author, DispoProgram program, DispoSet descriptor) { + IOseeBranch branch = getProgramBranch(program); TransactionBuilder tx = getTxFactory().createTransaction(branch, author, "Create Dispo Set"); ArtifactId creatdArtId = tx.createArtifact(DispoConstants.DispoSet, descriptor.getName()); tx.setSoleAttributeFromString(creatdArtId, DispoConstants.ImportPath, descriptor.getImportPath()); @@ -235,18 +240,18 @@ public class OrcsStorageImpl implements Storage { } @Override - public boolean deleteDispoItem(ArtifactReadable author, String programId, String itemId) { - return deleteDispoEntityArtifact(author, programId, itemId, DispoConstants.DispoItem); + public boolean deleteDispoItem(ArtifactReadable author, DispoProgram program, String itemId) { + return deleteDispoEntityArtifact(author, program, itemId, DispoConstants.DispoItem); } @Override - public boolean deleteDispoSet(ArtifactReadable author, String programId, String setId) { - return deleteDispoEntityArtifact(author, programId, setId, DispoConstants.DispoSet); + public boolean deleteDispoSet(ArtifactReadable author, DispoProgram program, String setId) { + return deleteDispoEntityArtifact(author, program, setId, DispoConstants.DispoSet); } - private boolean deleteDispoEntityArtifact(ArtifactReadable author, String programId, String entityId, IArtifactType type) { + private boolean deleteDispoEntityArtifact(ArtifactReadable author, DispoProgram program, String entityId, IArtifactType type) { boolean toReturn = false; - IOseeBranch branch = TokenFactory.createBranch(programId, ""); + IOseeBranch branch = getProgramBranch(program); ArtifactReadable dispoArtifact = findDispoArtifact(branch, entityId, type); if (dispoArtifact != null) { TransactionBuilder tx = getTxFactory().createTransaction(branch, author, "Delete Dispo Artifact"); @@ -259,8 +264,8 @@ public class OrcsStorageImpl implements Storage { } @Override - public void updateDispoSet(ArtifactReadable author, String branchId, String setId, DispoSet newData) { - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + public void updateDispoSet(ArtifactReadable author, DispoProgram program, String setId, DispoSet newData) { + IOseeBranch branch = getProgramBranch(program); ArtifactReadable dispoSet = findDispoArtifact(branch, setId, DispoConstants.DispoSet); String name = newData.getName(); @@ -286,8 +291,8 @@ public class OrcsStorageImpl implements Storage { } @Override - public Identifiable<String> createDispoItem(ArtifactReadable author, String branchId, DispoSet parentSet, DispoItem data, ArtifactReadable assignee) { - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + public Identifiable<String> createDispoItem(ArtifactReadable author, DispoProgram program, DispoSet parentSet, DispoItem data, ArtifactReadable assignee) { + IOseeBranch branch = getProgramBranch(program); ArtifactReadable parentSetArt = findDispoArtifact(branch, parentSet.getGuid(), DispoConstants.DispoSet); TransactionBuilder tx = getTxFactory().createTransaction(branch, author, "Create Dispoable Item"); ArtifactId createdItem = tx.createArtifact(DispoConstants.DispoItem, data.getName()); @@ -308,8 +313,8 @@ public class OrcsStorageImpl implements Storage { } @Override - public void createAnnotation(ArtifactReadable author, String branchId, ArtifactId disposition, String annotationsJson) { - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + public void createAnnotation(ArtifactReadable author, DispoProgram program, ArtifactId disposition, String annotationsJson) { + IOseeBranch branch = getProgramBranch(program); TransactionBuilder tx = getTxFactory().createTransaction(branch, author, "Create Dispo Annotation"); tx.setSoleAttributeFromString(disposition, DispoConstants.DispoAnnotationsJson, annotationsJson); @@ -317,9 +322,9 @@ public class OrcsStorageImpl implements Storage { } @Override - public void updateDispoItem(ArtifactReadable author, String branchId, String dispoItemId, DispoItem data) { + public void updateDispoItem(ArtifactReadable author, DispoProgram program, String dispoItemId, DispoItem data) { boolean wasEdited = false; - IOseeBranch branch = TokenFactory.createBranch(branchId, ""); + IOseeBranch branch = getProgramBranch(program); ArtifactId dispoItemArt = findDispoArtifact(branch, dispoItemId, DispoConstants.DispoItem); String assigneeId = data.getAssignee(); @@ -357,7 +362,7 @@ public class OrcsStorageImpl implements Storage { } @Override - public IOseeBranch findProgramId(String branchId) { + public IOseeBranch findProgramId(DispoProgram program) { IOseeBranch toReturn = null; BranchReadable branchRead = getQuery().branchQuery().andIds(CoreBranches.COMMON).getResults().getExactlyOne(); @@ -366,14 +371,24 @@ public class OrcsStorageImpl implements Storage { String configContents = configArt.getSoleAttributeAsString(CoreAttributeTypes.GeneralStringData); - Pattern regex = Pattern.compile(branchId + "\\s*:\\s*.*"); + Pattern regex = Pattern.compile(program.getGuid() + "\\s*:\\s*.*"); Matcher matcher = regex.matcher(configContents); + String guid = null; if (matcher.find()) { String match = matcher.group(); String[] split = match.split(":"); - toReturn = TokenFactory.createBranch(split[1], ""); + guid = split[1]; } + regex = Pattern.compile(program.getUuid() + "\\s*:\\s*.*"); + matcher = regex.matcher(configContents); + Long uuid = null; + if (matcher.find()) { + String match = matcher.group(); + String[] split = match.split(":"); + uuid = Long.valueOf(split[1]); + } + toReturn = TokenFactory.createBranch(guid, uuid, ""); return toReturn; } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/AnnotationResource.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/AnnotationResource.java index f7cd7379066..423bd91beda 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/AnnotationResource.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/AnnotationResource.java @@ -23,6 +23,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import org.eclipse.osee.disposition.model.DispoAnnotationData; import org.eclipse.osee.disposition.model.DispoMessages; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.rest.DispoApi; import org.eclipse.osee.disposition.rest.util.HtmlWriter; import org.eclipse.osee.framework.jdk.core.type.ResultSet; @@ -33,12 +34,12 @@ import org.eclipse.osee.framework.jdk.core.type.ResultSet; public class AnnotationResource { private final DispoApi dispoApi; private final HtmlWriter writer; - private final String branchId; + private final DispoProgram program; private final String itemId; - public AnnotationResource(DispoApi dispoApi, HtmlWriter writer, String branchUid, String setUuid, String dispResourceId) { + public AnnotationResource(DispoApi dispoApi, HtmlWriter writer, DispoProgram program, String setUuid, String dispResourceId) { this.dispoApi = dispoApi; - this.branchId = branchUid; + this.program = program; this.itemId = dispResourceId; this.writer = writer; } @@ -57,10 +58,10 @@ public class AnnotationResource { Response.Status status; Response response; if (!annotation.getLocationRefs().isEmpty()) { - String createdAnnotationId = dispoApi.createDispoAnnotation(branchId, itemId, annotation); + String createdAnnotationId = dispoApi.createDispoAnnotation(program, itemId, annotation); status = Status.CREATED; DispoAnnotationData createdAnnotation = - dispoApi.getDispoAnnotationByIndex(branchId, itemId, createdAnnotationId); + dispoApi.getDispoAnnotationByIndex(program, itemId, createdAnnotationId); response = Response.status(status).entity(createdAnnotation).build(); } else { status = Status.BAD_REQUEST; @@ -82,7 +83,7 @@ public class AnnotationResource { public Response getAllDispoAnnotations() { Response.Status status; String html; - ResultSet<DispoAnnotationData> dispositionAnnotations = dispoApi.getDispoAnnotations(branchId, itemId); + ResultSet<DispoAnnotationData> dispositionAnnotations = dispoApi.getDispoAnnotations(program, itemId); if (dispositionAnnotations.isEmpty()) { status = Status.NOT_FOUND; @@ -107,7 +108,7 @@ public class AnnotationResource { @Produces(MediaType.APPLICATION_JSON) public Response getAnnotationByIdJson(@PathParam("annotationId") String annotationId) { Response response; - DispoAnnotationData result = dispoApi.getDispoAnnotationByIndex(branchId, itemId, annotationId); + DispoAnnotationData result = dispoApi.getDispoAnnotationByIndex(program, itemId, annotationId); if (result == null) { response = Response.status(Response.Status.NOT_FOUND).entity(DispoMessages.Annotation_NotFound).build(); } else { @@ -130,7 +131,7 @@ public class AnnotationResource { public Response getAnnotationByIdHtml(@PathParam("annotationId") String annotationId) { Response.Status status; String html; - DispoAnnotationData dispositionAnnotation = dispoApi.getDispoAnnotationByIndex(branchId, itemId, annotationId); + DispoAnnotationData dispositionAnnotation = dispoApi.getDispoAnnotationByIndex(program, itemId, annotationId); if (dispositionAnnotation == null) { status = Status.NOT_FOUND; html = DispoMessages.Annotation_NotFound; @@ -156,7 +157,7 @@ public class AnnotationResource { @Consumes(MediaType.APPLICATION_JSON) public Response putDispoAnnotation(@PathParam("annotationId") String annotationId, DispoAnnotationData newAnnotation) { Response response; - boolean wasEdited = dispoApi.editDispoAnnotation(branchId, itemId, annotationId, newAnnotation); + boolean wasEdited = dispoApi.editDispoAnnotation(program, itemId, annotationId, newAnnotation); if (wasEdited) { response = Response.status(Response.Status.OK).build(); } else { @@ -177,7 +178,7 @@ public class AnnotationResource { @DELETE public Response deleteDispoAnnotation(@PathParam("annotationId") String annotationId) { Response response; - boolean wasEdited = dispoApi.deleteDispoAnnotation(branchId, itemId, annotationId); + boolean wasEdited = dispoApi.deleteDispoAnnotation(program, itemId, annotationId); if (wasEdited) { response = Response.status(Response.Status.OK).build(); } else { diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoApplication.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoApplication.java index 4fd675c21c8..739091c6e4b 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoApplication.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoApplication.java @@ -30,12 +30,9 @@ public final class DispoApplication extends Application { private DispoApi dispoApi; - public void setDispoApi(DispoApi dispoApi) { - this.dispoApi = dispoApi; - } - @Override public Set<Object> getSingletons() { + Set<Object> singletons = new HashSet<Object>(); singletons.add(new DispoSetMessageReader()); singletons.add(new DispoSetMessageWriter()); @@ -45,7 +42,11 @@ public final class DispoApplication extends Application { singletons.add(new DispoAnnotationMessageWriter()); HtmlWriter writer = new HtmlWriter(TemplateRegistry.newRegistry()); - singletons.add(new DispoProgramResource(dispoApi, writer)); + singletons.add(new DispoProgramResource(dispoApi, writer, dispoApi.getDispoFactory())); return singletons; } + + public void setDispoApi(DispoApi dispoApi) { + this.dispoApi = dispoApi; + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoItemResource.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoItemResource.java index c95af10bc2d..96394145281 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoItemResource.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoItemResource.java @@ -24,6 +24,7 @@ import javax.ws.rs.core.Response.Status; import org.eclipse.osee.disposition.model.DispoItem; import org.eclipse.osee.disposition.model.DispoItemData; import org.eclipse.osee.disposition.model.DispoMessages; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.rest.DispoApi; import org.eclipse.osee.disposition.rest.util.HtmlWriter; import org.eclipse.osee.framework.jdk.core.type.Identifiable; @@ -35,19 +36,19 @@ import org.eclipse.osee.framework.jdk.core.type.ResultSet; public class DispoItemResource { private final DispoApi dispoApi; private final HtmlWriter writer; - private final String branchGuid; + private final DispoProgram program; private final String setId; - public DispoItemResource(DispoApi dispoApi, HtmlWriter writer, String branchGuid, String setId) { + public DispoItemResource(DispoApi dispoApi, HtmlWriter writer, DispoProgram program, String setId) { this.dispoApi = dispoApi; - this.branchGuid = branchGuid; + this.program = program; this.setId = setId; this.writer = writer; } @POST public Response postDispoItem(DispoItemData dispoItem) { - Identifiable<String> createDispoItem = dispoApi.createDispoItem(branchGuid, setId, dispoItem); + Identifiable<String> createDispoItem = dispoApi.createDispoItem(program, setId, dispoItem); return Response.status(Status.OK).entity(createDispoItem.getGuid()).build(); } @@ -61,7 +62,7 @@ public class DispoItemResource { @GET @Produces(MediaType.TEXT_HTML) public Response getAllDispoItems() { - ResultSet<DispoItemData> dispoItems = dispoApi.getDispoItems(branchGuid, setId); + ResultSet<DispoItemData> dispoItems = dispoApi.getDispoItems(program, setId); Response.Status status; String html; if (dispoItems.isEmpty()) { @@ -87,7 +88,7 @@ public class DispoItemResource { @Produces(MediaType.APPLICATION_JSON) public Response getDispoItemsByIdJson(@PathParam("itemId") String itemId) { Response response; - DispoItem result = dispoApi.getDispoItemById(branchGuid, itemId); + DispoItem result = dispoApi.getDispoItemById(program, itemId); if (result == null) { response = Response.status(Response.Status.NOT_FOUND).entity(DispoMessages.Item_NotFound).build(); } else { @@ -110,7 +111,7 @@ public class DispoItemResource { public Response getDispoItemsByIdHtml(@PathParam("itemId") String itemId) { String html; Response.Status status; - DispoItem dispoItem = dispoApi.getDispoItemById(branchGuid, itemId); + DispoItem dispoItem = dispoApi.getDispoItemById(program, itemId); if (dispoItem == null) { status = Status.NOT_FOUND; html = DispoMessages.Item_NotFound; @@ -137,7 +138,7 @@ public class DispoItemResource { @Consumes(MediaType.APPLICATION_JSON) public Response putDispoItem(@PathParam("itemId") String itemId, DispoItemData newDispoItem) { Response response; - boolean wasEdited = dispoApi.editDispoItem(branchGuid, itemId, newDispoItem); + boolean wasEdited = dispoApi.editDispoItem(program, itemId, newDispoItem); if (wasEdited) { response = Response.status(Response.Status.OK).build(); } else { @@ -158,7 +159,7 @@ public class DispoItemResource { @DELETE public Response deleteDispoItem(@PathParam("itemId") String itemId) { Response response; - boolean wasEdited = dispoApi.deleteDispoItem(branchGuid, itemId); + boolean wasEdited = dispoApi.deleteDispoItem(program, itemId); if (wasEdited) { response = Response.status(Response.Status.OK).build(); } else { @@ -169,6 +170,6 @@ public class DispoItemResource { @Path("{itemId}/annotation/") public AnnotationResource getAnnotation(@PathParam("itemId") String itemId) { - return new AnnotationResource(dispoApi, writer, branchGuid, setId, itemId); + return new AnnotationResource(dispoApi, writer, program, setId, itemId); } } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoProgramResource.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoProgramResource.java index 051c874b9b8..7c21fff14e3 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoProgramResource.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoProgramResource.java @@ -19,6 +19,7 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import org.eclipse.osee.disposition.model.DispoMessages; import org.eclipse.osee.disposition.rest.DispoApi; +import org.eclipse.osee.disposition.rest.util.DispoFactory; import org.eclipse.osee.disposition.rest.util.HtmlWriter; import org.eclipse.osee.framework.core.data.IOseeBranch; import org.eclipse.osee.framework.jdk.core.type.ResultSet; @@ -31,10 +32,12 @@ public class DispoProgramResource { private final DispoApi dispoApi; private final HtmlWriter writer; + private final DispoFactory dispoFactory; - public DispoProgramResource(DispoApi dispoApi, HtmlWriter writer) { + public DispoProgramResource(DispoApi dispoApi, HtmlWriter writer, DispoFactory factory) { this.dispoApi = dispoApi; this.writer = writer; + this.dispoFactory = factory; } /** @@ -72,7 +75,7 @@ public class DispoProgramResource { @GET @Produces(MediaType.TEXT_HTML) public Response getProgramById(@PathParam("programId") String programId) { - IOseeBranch dispoBranch = dispoApi.getDispoProgramById(programId); + IOseeBranch dispoBranch = dispoApi.getDispoProgramById(dispoFactory.createProgram(programId)); Response.Status status; String html; if (dispoBranch == null) { @@ -90,6 +93,6 @@ public class DispoProgramResource { @Path("{programId}/set") public DispoSetResource getAnnotation(@PathParam("programId") String programId) { - return new DispoSetResource(dispoApi, writer, programId); + return new DispoSetResource(dispoApi, writer, dispoFactory.createProgram(programId)); } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoSetResource.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoSetResource.java index 42c9f7c4935..bd8c0311be1 100644 --- a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoSetResource.java +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/resources/DispoSetResource.java @@ -22,6 +22,7 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import org.eclipse.osee.disposition.model.DispoMessages; +import org.eclipse.osee.disposition.model.DispoProgram; import org.eclipse.osee.disposition.model.DispoSet; import org.eclipse.osee.disposition.model.DispoSetData; import org.eclipse.osee.disposition.model.DispoSetDescriptorData; @@ -36,12 +37,12 @@ public class DispoSetResource { private final DispoApi dispoApi; private final HtmlWriter writer; - private final String programId; + private final DispoProgram program; - public DispoSetResource(DispoApi dispoApi, HtmlWriter writer, String programId) { + public DispoSetResource(DispoApi dispoApi, HtmlWriter writer, DispoProgram program) { this.dispoApi = dispoApi; this.writer = writer; - this.programId = programId; + this.program = program; } /** @@ -63,10 +64,10 @@ public class DispoSetResource { String importPath = descriptor.getImportPath(); if (!name.isEmpty() && !importPath.isEmpty()) { - boolean isUniqueSetName = dispoApi.isUniqueSetName(programId, name); + boolean isUniqueSetName = dispoApi.isUniqueSetName(program, name); if (isUniqueSetName) { - String createdSetId = dispoApi.createDispoSet(programId, descriptor).getGuid(); - DispoSetData createdSet = dispoApi.getDispoSetById(programId, createdSetId); + String createdSetId = dispoApi.createDispoSet(program, descriptor).getGuid(); + DispoSetData createdSet = dispoApi.getDispoSetById(program, createdSetId); status = Status.CREATED; response = Response.status(status).entity(createdSet).build(); } else { @@ -90,7 +91,7 @@ public class DispoSetResource { @GET @Produces(MediaType.TEXT_HTML) public Response getAllDispoSets() { - ResultSet<DispoSetData> allDispoSets = dispoApi.getDispoSets(programId); + ResultSet<DispoSetData> allDispoSets = dispoApi.getDispoSets(program); Response.Status status; String html; if (allDispoSets.isEmpty()) { @@ -116,7 +117,7 @@ public class DispoSetResource { @Produces(MediaType.APPLICATION_JSON) public Response getDispoSetByIdJson(@PathParam("setId") String setId) { Response response; - DispoSet result = dispoApi.getDispoSetById(programId, setId); + DispoSet result = dispoApi.getDispoSetById(program, setId); if (result == null) { response = Response.status(Response.Status.NOT_FOUND).entity(DispoMessages.Set_NotFound).build(); } else { @@ -139,7 +140,7 @@ public class DispoSetResource { public Response getDispoSetByIdHtml(@PathParam("setId") String setId) { Response.Status status; String html; - DispoSet dispoSetArt = dispoApi.getDispoSetById(programId, setId); + DispoSet dispoSetArt = dispoApi.getDispoSetById(program, setId); if (dispoSetArt == null) { status = Status.NOT_FOUND; html = DispoMessages.Set_NotFound; @@ -167,7 +168,7 @@ public class DispoSetResource { @Consumes(MediaType.APPLICATION_JSON) public Response putDispoSet(@PathParam("setId") String setId, DispoSetData newDispositionSet) { Response.Status status; - boolean wasEdited = dispoApi.editDispoSet(programId, setId, newDispositionSet); + boolean wasEdited = dispoApi.editDispoSet(program, setId, newDispositionSet); if (wasEdited) { status = Status.OK; } else { @@ -188,7 +189,7 @@ public class DispoSetResource { @DELETE public Response deleteDispoSet(@PathParam("setId") String setId) { Response.Status status = Status.NOT_FOUND; - boolean wasDeleted = dispoApi.deleteDispoSet(programId, setId); + boolean wasDeleted = dispoApi.deleteDispoSet(program, setId); if (wasDeleted) { status = Status.OK; } else { @@ -199,6 +200,6 @@ public class DispoSetResource { @Path("{setId}/item") public DispoItemResource getDispositionableItems(@PathParam("setId") String setId) { - return new DispoItemResource(dispoApi, writer, programId, setId); + return new DispoItemResource(dispoApi, writer, program, setId); } } diff --git a/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/util/DispoFactory.java b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/util/DispoFactory.java new file mode 100644 index 00000000000..32f8952fcfc --- /dev/null +++ b/plugins/org.eclipse.osee.disposition.rest/src/org/eclipse/osee/disposition/rest/util/DispoFactory.java @@ -0,0 +1,27 @@ +/******************************************************************************* + * Copyright (c) 2013 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.disposition.rest.util; + +import org.eclipse.osee.disposition.model.DispoProgram; +import org.eclipse.osee.framework.core.data.IOseeBranch; + +/** + * @author Donald G. Dunne + */ +public interface DispoFactory { + + public DispoProgram createProgram(String name); + + public DispoProgram createProgram(String name, String guid, Long uuid); + + public DispoProgram createProgram(IOseeBranch branch); + +}
\ No newline at end of file |