Skip to content

Commit 472ac33

Browse files
committed
Prevent possibility of assining representation more than one level down. Closes #1660
1 parent f5a2baf commit 472ac33

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/java/CdbWebPortal/src/java/gov/anl/aps/cdb/portal/controllers/ItemDomainMachineDesignBaseController.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3475,8 +3475,14 @@ public void prepareMachineAssignRepresentingAssemblyElement() {
34753475
}
34763476

34773477
if (parentMachineDesign != null) {
3478+
ItemElement representsCatalogElement = parentMachineDesign.getRepresentsCatalogElement();
3479+
if (representsCatalogElement != null) {
3480+
SessionUtility.addErrorMessage("Represented Parent", "Parent item is represented by another assembly part, cannot link another level of representation.");
3481+
return;
3482+
}
3483+
34783484
Item assignedItem = parentMachineDesign.getAssignedItem();
3479-
3485+
34803486
if (assignedItem != null && assignedItem.getItemElementDisplayList().size() != 0) {
34813487
elementsAvaiableForNodeRepresentation = controllerUtility.fetchElementsAvaiableForNodeRepresentation(current);
34823488
} else {

src/java/CdbWebPortal/src/java/gov/anl/aps/cdb/portal/controllers/utilities/ItemDomainMachineDesignBaseControllerUtility.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -729,6 +729,14 @@ private void updateRepresentingAssemblyElementForMachine(ItemDomainMachineDesign
729729
throw new InvalidObjectState(errMessage);
730730
}
731731
}
732+
733+
ItemDomainMachineDesign parentMachineDesign = node.getParentMachineDesign();
734+
if (representedElement != null && parentMachineDesign.getRepresentsCatalogElement() != null) {
735+
String errMessage = node.getName();
736+
errMessage += " has a parent " + parentMachineDesign.getName();
737+
errMessage += " with represented element reference.";
738+
throw new InvalidObjectState(errMessage);
739+
}
732740

733741
List<ItemElement> elements = fetchElementsAvaiableForNodeRepresentation(node);
734742

0 commit comments

Comments
 (0)