From eea947eb3da28018752927f573bb94c8b5e7126a Mon Sep 17 00:00:00 2001
From: Lars Johansson <lars.johansson@ess.eu>
Date: Wed, 7 Dec 2022 13:36:51 +0100
Subject: [PATCH] Update documentation

---
 .../repository/IDeviceGroupRepository.java    |   2 +-
 .../repository/IDeviceTypeRepository.java     |   2 +-
 .../repository/IDisciplineRepository.java     |   2 +-
 .../names/repository/INameRepository.java     |   2 +-
 .../repository/ISubsystemRepository.java      |   2 +-
 .../repository/ISystemGroupRepository.java    |   2 +-
 .../names/repository/ISystemRepository.java   |   2 +-
 .../openepics/names/rest/api/v1/INames.java   |  13 +-
 .../names/rest/api/v1/IStructures.java        |  18 +--
 .../openepics/names/rest/beans/FieldName.java |   2 +-
 .../names/rest/beans/FieldStructure.java      |   2 +-
 .../names/rest/beans/element/NameElement.java |   2 +-
 .../beans/element/NameElementCommand.java     |   2 +-
 .../rest/beans/element/StructureElement.java  |   2 +-
 .../element/StructureElementCommand.java      |   2 +-
 .../controller/HealthcheckController.java     |   8 +-
 .../rest/controller/NamesController.java      |  39 ++++++
 .../rest/controller/ReportController.java     |  33 +++--
 .../rest/controller/StructuresController.java | 100 +++++++++++++-
 .../controller/VerificationController.java    |  14 +-
 .../openepics/names/service/NamesService.java |  49 +++----
 .../names/service/StructuresService.java      |  18 +--
 .../names/util/EssNamingConvention.java       |   5 +-
 .../openepics/names/util/NameElementUtil.java |  40 +++---
 .../names/util/NamingConvention.java          |  31 +++--
 .../names/util/StructureElementUtil.java      | 128 ++++++++----------
 .../util/ValidateStructureElementUtil.java    |   3 +-
 27 files changed, 317 insertions(+), 208 deletions(-)

diff --git a/src/main/java/org/openepics/names/repository/IDeviceGroupRepository.java b/src/main/java/org/openepics/names/repository/IDeviceGroupRepository.java
index d47675e6..703f3e3b 100644
--- a/src/main/java/org/openepics/names/repository/IDeviceGroupRepository.java
+++ b/src/main/java/org/openepics/names/repository/IDeviceGroupRepository.java
@@ -26,7 +26,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 /**
- * Find device group structure (name part) information from JPA.
+ * Find device group structure (name part) information in JPA.
  *
  * @author Lars Johansson
  */
diff --git a/src/main/java/org/openepics/names/repository/IDeviceTypeRepository.java b/src/main/java/org/openepics/names/repository/IDeviceTypeRepository.java
index 0a515a0d..b2559d4e 100644
--- a/src/main/java/org/openepics/names/repository/IDeviceTypeRepository.java
+++ b/src/main/java/org/openepics/names/repository/IDeviceTypeRepository.java
@@ -26,7 +26,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 /**
- * Find device type structure (name part) information from JPA.
+ * Find device type structure (name part) information in JPA.
  *
  * @author Lars Johansson
  */
diff --git a/src/main/java/org/openepics/names/repository/IDisciplineRepository.java b/src/main/java/org/openepics/names/repository/IDisciplineRepository.java
index 747363ba..835cd4ac 100644
--- a/src/main/java/org/openepics/names/repository/IDisciplineRepository.java
+++ b/src/main/java/org/openepics/names/repository/IDisciplineRepository.java
@@ -26,7 +26,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 /**
- * Find discipline structure (name part) information from JPA.
+ * Find discipline structure (name part) information in JPA.
  *
  * @author Lars Johansson
  */
diff --git a/src/main/java/org/openepics/names/repository/INameRepository.java b/src/main/java/org/openepics/names/repository/INameRepository.java
index 7a7a20cc..3bb4025a 100644
--- a/src/main/java/org/openepics/names/repository/INameRepository.java
+++ b/src/main/java/org/openepics/names/repository/INameRepository.java
@@ -26,7 +26,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 /**
- * Find name information from JPA.
+ * Find name information in JPA.
  *
  * @author Lars Johansson
  */
diff --git a/src/main/java/org/openepics/names/repository/ISubsystemRepository.java b/src/main/java/org/openepics/names/repository/ISubsystemRepository.java
index 34240620..a60e894b 100644
--- a/src/main/java/org/openepics/names/repository/ISubsystemRepository.java
+++ b/src/main/java/org/openepics/names/repository/ISubsystemRepository.java
@@ -26,7 +26,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 /**
- * Find subsystem structure (name part)information from JPA.
+ * Find subsystem structure (name part)information in JPA.
  *
  * @author Lars Johansson
  */
diff --git a/src/main/java/org/openepics/names/repository/ISystemGroupRepository.java b/src/main/java/org/openepics/names/repository/ISystemGroupRepository.java
index a61bbdfc..f8c5d60b 100644
--- a/src/main/java/org/openepics/names/repository/ISystemGroupRepository.java
+++ b/src/main/java/org/openepics/names/repository/ISystemGroupRepository.java
@@ -26,7 +26,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 /**
- * Find system group structure (name part) information from JPA.
+ * Find system group structure (name part) information in JPA.
  *
  * @author Lars Johansson
  */
diff --git a/src/main/java/org/openepics/names/repository/ISystemRepository.java b/src/main/java/org/openepics/names/repository/ISystemRepository.java
index 7e33eb14..4c0e96c8 100644
--- a/src/main/java/org/openepics/names/repository/ISystemRepository.java
+++ b/src/main/java/org/openepics/names/repository/ISystemRepository.java
@@ -26,7 +26,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 /**
- * Find system structure (name part) information from JPA.
+ * Find system structure (name part) information in JPA.
  *
  * @author Lars Johansson
  */
diff --git a/src/main/java/org/openepics/names/rest/api/v1/INames.java b/src/main/java/org/openepics/names/rest/api/v1/INames.java
index 735694b9..97b1acfa 100644
--- a/src/main/java/org/openepics/names/rest/api/v1/INames.java
+++ b/src/main/java/org/openepics/names/rest/api/v1/INames.java
@@ -62,8 +62,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public interface INames {
 
     /*
-       FieldName   - UUID, NAME, NAMEEQUIVALENCE, SYSTEMSTRUCTURE, DEVICESTRUCTURE, DESCRIPTION
-
        NameElementCommand - subset of NameElement attributes
        NameElement
                      uuid                     (UUID)
@@ -82,12 +80,6 @@ public interface INames {
                      when                     (Date)
                      who                      (String)
 
-       authentication/authorization
-           3 levels - no, user, administrator
-               no            - read
-               user          - create, update, delete
-             ( administrator )
-
        Methods
            create    POST   /names                                - createNames                  (List<NameElementCommand>)
            create    POST   /names/upload                         - createNames                  (MultipartFile)
@@ -117,6 +109,11 @@ public interface INames {
        Note
            read      GET    /names/{name} - both name and uuid (name - exact and search, uuid exact)
            /upload and /download endpoints handle Excel files
+           authentication/authorization
+               3 levels - no, user, administrator
+                   no            - read
+                   user          - create, update, delete
+                 ( administrator )
      */
 
     public static final String DEFAULT_PAGE            = "0";
diff --git a/src/main/java/org/openepics/names/rest/api/v1/IStructures.java b/src/main/java/org/openepics/names/rest/api/v1/IStructures.java
index 3971f3ac..cc5e8665 100644
--- a/src/main/java/org/openepics/names/rest/api/v1/IStructures.java
+++ b/src/main/java/org/openepics/names/rest/api/v1/IStructures.java
@@ -65,10 +65,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public interface IStructures {
 
     /*
-       Type             - SYSTEMGROUP, SYSTEM, SUBSYSTEM, DISCIPLINE, DEVICEGROUP, DEVICETYPE
-       Status           - APPROVED, ARCHIVED, CANCELLED, PENDING, REJECTED
-       FieldStructure   - UUID, PARENT, NAME, MNEMONIC, MNEMONICEQUIVALENCE, MNEMONICPATH, DESCRIPTION
-
        StructureElementCommand - subset of StructureElement attributes
        StructureElement
                           uuid            (UUID)
@@ -87,14 +83,6 @@ public interface IStructures {
                           when            (Date)
                           who             (String)
 
-       authentication/authorization
-           3 levels - no, user, administrator
-               no            - read
-               user          - create, update, delete
-               administrator - approve, reject (, checkdevices)
-
-       mnemonic path for structure includes all levels of mnemonics
-
        Methods
            create    POST   /structures                                       - createStructures               (List<StructureElementCommand>)
            create    POST   /structures/upload                                - createStructures               (MultipartFile)
@@ -132,6 +120,12 @@ public interface IStructures {
 
        Note
            /upload and /download endpoints handle Excel files
+           authentication/authorization
+               3 levels - no, user, administrator
+                   no            - read
+                   user          - create, update, delete
+                   administrator - approve, cancel, reject
+           mnemonic path for structure includes all levels of mnemonics
      */
 
     public static final String DEFAULT_PAGE            = "0";
diff --git a/src/main/java/org/openepics/names/rest/beans/FieldName.java b/src/main/java/org/openepics/names/rest/beans/FieldName.java
index 3853174a..c31906fb 100644
--- a/src/main/java/org/openepics/names/rest/beans/FieldName.java
+++ b/src/main/java/org/openepics/names/rest/beans/FieldName.java
@@ -21,7 +21,7 @@ package org.openepics.names.rest.beans;
 import io.swagger.v3.oas.annotations.media.Schema;
 
 /**
- * This enum  represents fields for name in beans and for communication.
+ * This enum represents fields for name in beans and for communication.
  *
  * @author Lars Johansson
  */
diff --git a/src/main/java/org/openepics/names/rest/beans/FieldStructure.java b/src/main/java/org/openepics/names/rest/beans/FieldStructure.java
index b25cf986..92002989 100644
--- a/src/main/java/org/openepics/names/rest/beans/FieldStructure.java
+++ b/src/main/java/org/openepics/names/rest/beans/FieldStructure.java
@@ -21,7 +21,7 @@ package org.openepics.names.rest.beans;
 import io.swagger.v3.oas.annotations.media.Schema;
 
 /**
- * This enum  represents fields for structures in beans and for communication.
+ * This enum represents fields for structures in beans and for communication.
  *
  * @author Lars Johansson
  */
diff --git a/src/main/java/org/openepics/names/rest/beans/element/NameElement.java b/src/main/java/org/openepics/names/rest/beans/element/NameElement.java
index d0c2846f..3b389db6 100644
--- a/src/main/java/org/openepics/names/rest/beans/element/NameElement.java
+++ b/src/main/java/org/openepics/names/rest/beans/element/NameElement.java
@@ -28,7 +28,7 @@ import org.openepics.names.rest.beans.Status;
 import io.swagger.v3.oas.annotations.media.Schema;
 
 /**
- * Bean (data transfer object) for communication and (json, xml) serialization.
+ * Bean (data transfer object) for communication and (json) serialization.
  * Intended for operations that read names.
  *
  * @author Lars Johansson
diff --git a/src/main/java/org/openepics/names/rest/beans/element/NameElementCommand.java b/src/main/java/org/openepics/names/rest/beans/element/NameElementCommand.java
index 25f24abc..bd07555e 100644
--- a/src/main/java/org/openepics/names/rest/beans/element/NameElementCommand.java
+++ b/src/main/java/org/openepics/names/rest/beans/element/NameElementCommand.java
@@ -25,7 +25,7 @@ import java.util.UUID;
 import io.swagger.v3.oas.annotations.media.Schema;
 
 /**
- * Bean (data transfer object) for communication and (json, xml) serialization.
+ * Bean (data transfer object) for communication and (json) serialization.
  * Intended for operations that modify names.
  *
  * @author Lars Johansson
diff --git a/src/main/java/org/openepics/names/rest/beans/element/StructureElement.java b/src/main/java/org/openepics/names/rest/beans/element/StructureElement.java
index 5635749a..161d3652 100644
--- a/src/main/java/org/openepics/names/rest/beans/element/StructureElement.java
+++ b/src/main/java/org/openepics/names/rest/beans/element/StructureElement.java
@@ -29,7 +29,7 @@ import org.openepics.names.rest.beans.Type;
 import io.swagger.v3.oas.annotations.media.Schema;
 
 /**
- * Bean (data transfer object) for communication and (json, xml) serialization.
+ * Bean (data transfer object) for communication and (json) serialization.
  * Intended for operations that read structures.
  *
  * @author Lars Johansson
diff --git a/src/main/java/org/openepics/names/rest/beans/element/StructureElementCommand.java b/src/main/java/org/openepics/names/rest/beans/element/StructureElementCommand.java
index 67a9cb31..d2589d9e 100644
--- a/src/main/java/org/openepics/names/rest/beans/element/StructureElementCommand.java
+++ b/src/main/java/org/openepics/names/rest/beans/element/StructureElementCommand.java
@@ -27,7 +27,7 @@ import org.openepics.names.rest.beans.Type;
 import io.swagger.v3.oas.annotations.media.Schema;
 
 /**
- * Bean (data transfer object) for communication and (json, xml) serialization.
+ * Bean (data transfer object) for communication and (json) serialization.
  * Intended for operations that modify structures.
  *
  * @author Lars Johansson
diff --git a/src/main/java/org/openepics/names/rest/controller/HealthcheckController.java b/src/main/java/org/openepics/names/rest/controller/HealthcheckController.java
index 62b17bee..2a564931 100644
--- a/src/main/java/org/openepics/names/rest/controller/HealthcheckController.java
+++ b/src/main/java/org/openepics/names/rest/controller/HealthcheckController.java
@@ -47,11 +47,9 @@ public class HealthcheckController {
 
     // note
     //     global exception handler available
-
-    /*
-       Methods
-           read      GET /healthcheck - readHealthcheck()
-     */
+    //
+    // methods
+    //     read      GET /healthcheck - readHealthcheck()
 
     /**
      * Perform healthcheck for Naming application in general and healtcheck endpoint in particular.
diff --git a/src/main/java/org/openepics/names/rest/controller/NamesController.java b/src/main/java/org/openepics/names/rest/controller/NamesController.java
index 814922d9..cbacb2aa 100644
--- a/src/main/java/org/openepics/names/rest/controller/NamesController.java
+++ b/src/main/java/org/openepics/names/rest/controller/NamesController.java
@@ -60,6 +60,12 @@ public class NamesController implements INames {
 
     // note
     //     global exception handler available
+    //
+    // TODO validate authority
+    //          either
+    //              none
+    //              naming user
+    //              naming admin (& user)
 
     private static final Logger LOGGER = Logger.getLogger(NamesController.class.getName());
 
@@ -100,8 +106,10 @@ public class NamesController implements INames {
     public ResponseEntity<Resource> createNames(MultipartFile file) {
         // validate authority
         //     naming user & admin
+        // convert from input
         // validate
         // do
+        // convert to output
 
         try {
              if (ExcelUtil.hasExcelFormat(file)) {
@@ -135,6 +143,8 @@ public class NamesController implements INames {
     public ResponsePageNameElements readNames(Boolean deleted,
             String uuid, String name, String nameequivalence, String systemstructure, String devicestructure, String index, String description,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return namesService.readNames(deleted,
                     uuid, name, nameequivalence, systemstructure, devicestructure, index, description,
@@ -153,6 +163,9 @@ public class NamesController implements INames {
     public ResponseEntity<Resource> readNamesDownload(Boolean deleted,
             String uuid, String name, String nameequivalence, String systemstructure, String devicestructure, String index, String description,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+        // convert to output
+
         ResponsePageNameElements nameElements = readNames(deleted,
                 uuid, name, nameequivalence, systemstructure, devicestructure, index, description,
                 orderBy, isAsc, page, pageSize);
@@ -166,6 +179,8 @@ public class NamesController implements INames {
     @Override
     public ResponsePageNameElements readNames(String name,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return namesService.readNames(name, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
@@ -181,6 +196,8 @@ public class NamesController implements INames {
     @Override
     public ResponsePageNameElements readNamesSystemStructure(String mnemonicpath,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return namesService.readNamesSystemStructure(mnemonicpath,
                     orderBy, isAsc, page, pageSize);
@@ -197,6 +214,8 @@ public class NamesController implements INames {
     @Override
     public ResponsePageNameElements readNamesDeviceStructure(String mnemonicpath,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return namesService.readNamesDeviceStructure(mnemonicpath,
                     orderBy, isAsc, page, pageSize);
@@ -213,6 +232,8 @@ public class NamesController implements INames {
     @Override
     public ResponsePageNameElements readNamesHistory(String uuid,
             FieldName orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return namesService.readNamesHistory(uuid,
                     orderBy, isAsc, page, pageSize);
@@ -230,6 +251,8 @@ public class NamesController implements INames {
 
     @Override
     public String equivalenceName(String name) {
+        // do
+
         try {
             return namesService.equivalenceName(name);
         } catch (ServiceException e) {
@@ -244,6 +267,8 @@ public class NamesController implements INames {
 
     @Override
     public ResponseEntity<ResponseBoolean> existsName(String name) {
+        // do
+
         try {
             return new ResponseEntity<>(new ResponseBoolean(namesService.existsName(name)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
@@ -258,6 +283,8 @@ public class NamesController implements INames {
 
     @Override
     public ResponseEntity<ResponseBoolean> isLegacyName(String name) {
+        // do
+
         try {
             return new ResponseEntity<>(new ResponseBoolean(namesService.isLegacyName(name)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
@@ -272,6 +299,8 @@ public class NamesController implements INames {
 
     @Override
     public ResponseEntity<ResponseBoolean> isValidToCreateName(String name) {
+        // do
+
         try {
             return new ResponseEntity<>(new ResponseBoolean(namesService.isValidToCreateName(name)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
@@ -288,6 +317,8 @@ public class NamesController implements INames {
 
     @Override
     public ResponseEntity<ResponseBooleanList> validateNamesCreate(List<NameElementCommand> nameElements) {
+        // validate
+
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
@@ -317,6 +348,8 @@ public class NamesController implements INames {
 
     @Override
     public ResponseEntity<ResponseBooleanList> validateNamesUpdate(List<NameElementCommand> nameElements) {
+        // validate
+
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
@@ -346,6 +379,8 @@ public class NamesController implements INames {
 
     @Override
     public ResponseEntity<ResponseBooleanList> validateNamesDelete(List<NameElementCommand> nameElements) {
+        // validate
+
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
@@ -399,8 +434,10 @@ public class NamesController implements INames {
     public ResponseEntity<Resource> updateNames(MultipartFile file) {
         // validate authority
         //     naming user & admin
+        // convert from input
         // validate
         // do
+        // convert to output
 
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
@@ -454,8 +491,10 @@ public class NamesController implements INames {
     public ResponseEntity<Resource> deleteNames(MultipartFile file) {
         // validate authority
         //     naming user & admin
+        // convert from input
         // validate
         // do
+        // convert to output
 
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
diff --git a/src/main/java/org/openepics/names/rest/controller/ReportController.java b/src/main/java/org/openepics/names/rest/controller/ReportController.java
index 9821b834..5e46ff80 100644
--- a/src/main/java/org/openepics/names/rest/controller/ReportController.java
+++ b/src/main/java/org/openepics/names/rest/controller/ReportController.java
@@ -122,16 +122,29 @@ public class ReportController {
             produces = {"text/plain"})
     public String reportAbout() {
         // report metrics about Naming
-        //     ess names, system structure, device structure
-
-        // status, latest, deleted
-        //     status     names - APPROVED, structures - APPROVED, ARCHIVED, CANCELLED, PENDING, REJECTED
-        //     latest     true (default)
-        //     deleted    null, false, true
-
-        // metrics can be read with service layer or repository layer
+        //     ess names
+        //         read latest, latest deleted, latest not deleted
+        //         count for kind of name
+        //     system structure, device structure
+        //         read latest per structure
+        //         count for status
+        //
+        // note
+        //     obsolete values are not shown
+        //     metrics can be read with service layer or repository layer
+
+        // do
+        //     prepare metrics
+        //         names      - read, count
+        //         structures - read, count
+        //     prepare text
+        //         names      - format
+        //         structures - format
+        //     report
 
         // prepare metrics
+        //     read names - latest, latest deleted, latest not deleted
+        //     count names - kind of name
         ResponsePageNameElements nameElementsEssNames = namesService.readNames(null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null);
         ResponsePageNameElements nameElementsEssNamesDeleted = namesService.readNames(Boolean.TRUE, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null);
         ResponsePageNameElements nameElementsEssNamesNotDeleted = namesService.readNames(Boolean.FALSE, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null);
@@ -159,6 +172,9 @@ public class ReportController {
             }
         }
 
+        // prepare metrics
+        //     read structures - latest
+        //     count structures - status
         ResponsePageStructureElements structureElementsSystemgroup = structuresService.readStructures(Type.SYSTEMGROUP, null, null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
         ResponsePageStructureElements structureElementsSystem = structuresService.readStructures(Type.SYSTEM, null, null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
         ResponsePageStructureElements structureElementsSubsystem = structuresService.readStructures(Type.SUBSYSTEM, null, null, null, null, null, null, null, null, null, Boolean.FALSE, null, null, null, null, StructureChoice.STRUCTURE);
@@ -330,6 +346,7 @@ public class ReportController {
             }
         }
 
+        // prepare text
         int spaceUntilSizeStructure = 16;
 
         String metricsOverviewEssName     = NBR_ACTIVE + nameElementsEssNamesNotDeleted.getListSize();
diff --git a/src/main/java/org/openepics/names/rest/controller/StructuresController.java b/src/main/java/org/openepics/names/rest/controller/StructuresController.java
index 68d51237..02d0aa6b 100644
--- a/src/main/java/org/openepics/names/rest/controller/StructuresController.java
+++ b/src/main/java/org/openepics/names/rest/controller/StructuresController.java
@@ -62,13 +62,12 @@ public class StructuresController implements IStructures {
 
     // note
     //     global exception handler available
-
+    //
     // TODO validate authority
     //          either
-    //              no or
+    //              none
     //              naming user
-    //              naming admin
-    //              naming user & admin
+    //              naming admin (& user)
 
     private static final Logger LOGGER = Logger.getLogger(StructuresController.class.getName());
 
@@ -109,8 +108,10 @@ public class StructuresController implements IStructures {
     public ResponseEntity<Resource> createStructures(MultipartFile file) {
         // validate authority
         //     naming user & admin
+        // convert from input
         // validate
         // do
+        // convert to output
 
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
@@ -144,6 +145,8 @@ public class StructuresController implements IStructures {
     public ResponsePageStructureElements readStructures(Type type, Status[] statuses, Boolean deleted,
             String uuid, String parentuuid, String name, String mnemonic, String mnemonicequivalence, String mnemonicpath, String description,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return structuresService.readStructures(type, statuses, deleted,
                     uuid, parentuuid, name, mnemonic, mnemonicequivalence, mnemonicpath, description,
@@ -162,6 +165,9 @@ public class StructuresController implements IStructures {
     public ResponseEntity<Resource> readStructuresDownload(Type type, Status[] statuses, Boolean deleted,
             String uuid, String parentuuid, String name, String mnemonic, String mnemonicequivalence, String mnemonicpath, String description,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+        // convert to output
+
         ResponsePageStructureElements structureElements = readStructures(type, statuses, deleted,
                 uuid, parentuuid, name, mnemonic, mnemonicequivalence, mnemonicpath, description,
                 orderBy, isAsc, page, pageSize);
@@ -176,6 +182,8 @@ public class StructuresController implements IStructures {
     public ResponsePageStructureElements readStructuresChildren(String uuid, Type type, Status[] statuses, Boolean deleted,
             String name, String mnemonic, String mnemonicequivalence, String mnemonicpath, String description,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return structuresService.readStructuresChildren(uuid, type, statuses, deleted,
                     name, mnemonic, mnemonicequivalence, mnemonicpath, description,
@@ -193,6 +201,8 @@ public class StructuresController implements IStructures {
     @Override
     public ResponsePageStructureElements readStructuresMnemonic(String mnemonic,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return structuresService.readStructuresMnemonic(mnemonic, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
@@ -208,6 +218,8 @@ public class StructuresController implements IStructures {
     @Override
     public ResponsePageStructureElements readStructuresMnemonicpath(String mnemonicpath,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return structuresService.readStructuresMnemonicpath(mnemonicpath, orderBy, isAsc, page, pageSize);
         } catch (ServiceException e) {
@@ -223,6 +235,8 @@ public class StructuresController implements IStructures {
     @Override
     public ResponsePageStructureElements readStructuresHistory(String uuid, Type type,
             FieldStructure orderBy, Boolean isAsc, Integer page, Integer pageSize) {
+        // do
+
         try {
             return structuresService.readStructuresHistory(uuid, type,
                     orderBy, isAsc, page, pageSize);
@@ -240,6 +254,8 @@ public class StructuresController implements IStructures {
 
     @Override
     public String equivalenceMnemonic(String mnemonic) {
+        // do
+
         try {
             return structuresService.equivalenceMnemonic(mnemonic);
         } catch (ServiceException e) {
@@ -254,6 +270,8 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBoolean> existsStructure(Type type, String mnemonicpath) {
+        // do
+
         try {
             return new ResponseEntity<>(new ResponseBoolean(structuresService.existsStructure(type, mnemonicpath)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
@@ -268,6 +286,8 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBoolean> isValidToCreateStructure(Type type, String mnemonicpath) {
+        // do
+
         try {
             return new ResponseEntity<>(new ResponseBoolean(structuresService.isValidToCreateStructure(type, mnemonicpath)), Response.getHeaderJson(), HttpStatus.OK);
         } catch (ServiceException e) {
@@ -284,6 +304,8 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBooleanList> validateStructuresCreate(List<StructureElementCommand> structureElements) {
+        // validate
+
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
@@ -313,6 +335,8 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBooleanList> validateStructuresUpdate(List<StructureElementCommand> structureElements) {
+        // validate
+
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
@@ -342,6 +366,8 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBooleanList> validateStructuresDelete(List<StructureElementCommand> structureElements) {
+        // validate
+
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
@@ -371,6 +397,8 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBooleanList> validateStructuresApprove(List<StructureElementCommand> structureElements) {
+        // validate
+
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
@@ -400,6 +428,8 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBooleanList> validateStructuresCancel(List<StructureElementCommand> structureElements) {
+        // validate
+
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
@@ -429,6 +459,8 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<ResponseBooleanList> validateStructuresReject(List<StructureElementCommand> structureElements) {
+        // validate
+
         boolean response = true;
         String reason = "";
         List<ResponseBoolean> responses = Lists.newArrayList();
@@ -460,6 +492,11 @@ public class StructuresController implements IStructures {
 
     @Override
     public List<StructureElement> updateStructures(List<StructureElementCommand> structureElements) {
+        // validate authority
+        //     naming user & admin
+        // validate
+        // do
+
         try {
             structuresService.validateStructuresUpdate(structureElements);
             return structuresService.updateStructures(structureElements);
@@ -475,6 +512,13 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<Resource> updateStructures(MultipartFile file) {
+        // validate authority
+        //     naming user & admin
+        // convert from input
+        // validate
+        // do
+        // convert to output
+
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
                 List<StructureElementCommand> structureElementCommands = ExcelUtil.excelToStructureElementCommands(file.getInputStream());
@@ -505,6 +549,11 @@ public class StructuresController implements IStructures {
 
     @Override
     public List<StructureElement> deleteStructures(List<StructureElementCommand> structureElements) {
+        // validate authority
+        //     naming user & admin
+        // validate
+        // do
+
         try {
             structuresService.validateStructuresDelete(structureElements);
             return structuresService.deleteStructures(structureElements);
@@ -520,6 +569,13 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<Resource> deleteStructures(MultipartFile file) {
+        // validate authority
+        //     naming user & admin
+        // convert from input
+        // validate
+        // do
+        // convert to output
+
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
                 List<StructureElementCommand> structureElementCommands = ExcelUtil.excelToStructureElementCommands(file.getInputStream());
@@ -550,6 +606,11 @@ public class StructuresController implements IStructures {
 
     @Override
     public List<StructureElement> approveStructures(List<StructureElementCommand> structureElements) {
+        // validate authority
+        //     naming admin
+        // validate
+        // do
+
         try {
             structuresService.validateStructuresApprove(structureElements);
             return structuresService.approveStructures(structureElements);
@@ -565,6 +626,13 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<Resource> approveStructures(MultipartFile file) {
+        // validate authority
+        //     naming admin
+        // convert from input
+        // validate
+        // do
+        // convert to output
+
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
                 List<StructureElementCommand> structureElementCommands = ExcelUtil.excelToStructureElementCommands(file.getInputStream());
@@ -593,6 +661,11 @@ public class StructuresController implements IStructures {
 
     @Override
     public List<StructureElement> cancelStructures(List<StructureElementCommand> structureElements) {
+        // validate authority
+        //     naming admin
+        // validate
+        // do
+
         try {
             structuresService.validateStructuresCancel(structureElements);
             return structuresService.cancelStructures(structureElements);
@@ -608,6 +681,13 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<Resource> cancelStructures(MultipartFile file) {
+        // validate authority
+        //     naming admin
+        // convert from input
+        // validate
+        // do
+        // convert to output
+
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
                 List<StructureElementCommand> structureElementCommands = ExcelUtil.excelToStructureElementCommands(file.getInputStream());
@@ -636,6 +716,11 @@ public class StructuresController implements IStructures {
 
     @Override
     public List<StructureElement> rejectStructures(List<StructureElementCommand> structureElements) {
+        // validate authority
+        //     naming admin
+        // validate
+        // do
+
         try {
             structuresService.validateStructuresReject(structureElements);
             return structuresService.rejectStructures(structureElements);
@@ -651,6 +736,13 @@ public class StructuresController implements IStructures {
 
     @Override
     public ResponseEntity<Resource> rejectStructures(MultipartFile file) {
+        // validate authority
+        //     naming admin
+        // convert from input
+        // validate
+        // do
+        // convert to output
+
         try {
             if (ExcelUtil.hasExcelFormat(file)) {
                 List<StructureElementCommand> structureElementCommands = ExcelUtil.excelToStructureElementCommands(file.getInputStream());
diff --git a/src/main/java/org/openepics/names/rest/controller/VerificationController.java b/src/main/java/org/openepics/names/rest/controller/VerificationController.java
index 40bc8f52..35b7937a 100644
--- a/src/main/java/org/openepics/names/rest/controller/VerificationController.java
+++ b/src/main/java/org/openepics/names/rest/controller/VerificationController.java
@@ -84,14 +84,12 @@ public class VerificationController {
 
     // note
     //     global exception handler available
-
-    /*
-       Methods
-           read      GET /verification/migration_devicerevision   - readMigrationDeviceRevision()
-           read      GET /verification/migration_namepartrevision - readMigrationNamePartRevision
-           read      GET /verification/data_reachable             - readDataReachable()
-           read      GET /verification/restapi_oldvsnew           - readRestApiOldVsNew()
-     */
+    //
+    // methods
+    //     read      GET /verification/migration_devicerevision   - readMigrationDeviceRevision()
+    //     read      GET /verification/migration_namepartrevision - readMigrationNamePartRevision
+    //     read      GET /verification/data_reachable             - readDataReachable()
+    //     read      GET /verification/restapi_oldvsnew           - readRestApiOldVsNew()
 
     private static final Logger LOGGER = Logger.getLogger(VerificationController.class.getName());
 
diff --git a/src/main/java/org/openepics/names/service/NamesService.java b/src/main/java/org/openepics/names/service/NamesService.java
index 97cb80a9..16e3b40c 100644
--- a/src/main/java/org/openepics/names/service/NamesService.java
+++ b/src/main/java/org/openepics/names/service/NamesService.java
@@ -135,8 +135,7 @@ public class NamesService {
 
     @Transactional
     public List<NameElement> createNames(List<NameElementCommand> nameElements) {
-        // validate
-        //     outside of @Transactional
+        // validation outside method
         // transaction
         //     do
         //         for each name element
@@ -164,6 +163,7 @@ public class NamesService {
     }
     @Transactional(propagation = Propagation.MANDATORY)
     public NameElement createName(NameElementCommand nameElement, HolderSystemDeviceStructure holder, Date requested, String requestedBy) {
+        // validation outside method
         // transaction
         //     support a current transaction, throw an exception if none exists
         // do
@@ -507,15 +507,14 @@ public class NamesService {
         validateNamesCreate(nameElement, new HolderSystemDeviceStructure(holderIRepositories));
     }
     public void validateNamesCreate(NameElementCommand nameElement, HolderSystemDeviceStructure holder) {
-        // validate authority
-        //     elsewhere
-        //         naming user & admin
         // validate input
         //     name element
         //         validate input itself
         // validate data
         //     name element
-        //         validate towards repository
+        //         validate data
+        //             itself
+        //             relative other data
 
         // validate input
         ValidateNameElementUtil.validateNameElementInputCreate(nameElement);
@@ -536,15 +535,14 @@ public class NamesService {
         validateNamesUpdate(nameElement, new HolderSystemDeviceStructure(holderIRepositories));
     }
     public void validateNamesUpdate(NameElementCommand nameElement, HolderSystemDeviceStructure holder) {
-        // validate authority
-        //     elsewhere
-        //         naming user & admin
         // validate input
         //     name element
         //         validate input itself
         // validate data
         //     name element
-        //         validate towards repository
+        //         validate data
+        //             itself
+        //             relative other data
 
         // validate input
         ValidateNameElementUtil.validateNameElementInputUpdate(nameElement);
@@ -565,13 +563,14 @@ public class NamesService {
         validateNamesDelete(nameElement, new HolderSystemDeviceStructure(holderIRepositories));
     }
     public void validateNamesDelete(NameElementCommand nameElement, HolderSystemDeviceStructure holder) {
-        //     validate authority
-        //         elsewhere
-        //             naming user & admin
-        //     validate input
-        //         uuid
-        //     validate data
-        //         retrieve name (uuid, latest, not deleted)
+        // validate input
+        //     name element
+        //         validate input itself
+        // validate data
+        //     name element
+        //         validate data
+        //             itself
+        //             relative other data
 
         // validate input
         ValidateNameElementUtil.validateNameElementInputDelete(nameElement);
@@ -580,16 +579,6 @@ public class NamesService {
         ValidateNameElementUtil.validateNameElementDataDelete(nameElement, namingConvention, holderIRepositories, nameRepository, holder);
     }
     public void validateNamesDelete(List<NameElementCommand> nameElements) {
-        //     validate authority
-        //         elsewhere
-        //             naming user & admin
-        //     validate input
-        //         name element
-        //             validate input itself
-        //     validate data
-        //         name element
-        //             validate towards repository
-
         // initiate holder of containers for system and device structure content, for performance reasons
         HolderSystemDeviceStructure holder = new HolderSystemDeviceStructure(holderIRepositories);
 
@@ -602,8 +591,7 @@ public class NamesService {
 
     @Transactional
     public List<NameElement> updateNames(List<NameElementCommand> nameElements) {
-        // validate
-        //     outside of @Transactional
+        // validation outside method
         // transaction
         //     do
         //         for each name element
@@ -686,8 +674,7 @@ public class NamesService {
 
     @Transactional
     public List<NameElement> deleteNames(List<NameElementCommand> nameElements) {
-        // validate
-        //     outside of @Transactional
+        // validation outside method
         // transaction
         //     do
         //         for each name element
diff --git a/src/main/java/org/openepics/names/service/StructuresService.java b/src/main/java/org/openepics/names/service/StructuresService.java
index f80d0df8..a4d7c80b 100644
--- a/src/main/java/org/openepics/names/service/StructuresService.java
+++ b/src/main/java/org/openepics/names/service/StructuresService.java
@@ -139,8 +139,7 @@ public class StructuresService {
 
     @Transactional
     public List<StructureElement> createStructures(List<StructureElementCommand> structureElements) {
-        // validate
-        //     outside of @Transactional
+        // validation outside method
         // transaction
         //     do
         //         for each structure element
@@ -840,8 +839,7 @@ public class StructuresService {
 
     @Transactional
     public List<StructureElement> updateStructures(List<StructureElementCommand> structureElements) {
-        // validate
-        //     outside of @Transactional
+        // validation outside method
         // transaction
         //     do
         //         for each structure element
@@ -947,8 +945,7 @@ public class StructuresService {
 
     @Transactional
     public List<StructureElement> deleteStructures(List<StructureElementCommand> structureElements) {
-        // validate
-        //     outside of @Transactional
+        // validation outside method
         // transaction
         //     do
         //         for each structure element
@@ -1084,8 +1081,7 @@ public class StructuresService {
 
     @Transactional
     public List<StructureElement> approveStructures(List<StructureElementCommand> structureElements) {
-        // validate
-        //     outside of @Transactional
+        // validation outside method
         // transaction
         //     do
         //         for each structure element
@@ -1326,8 +1322,7 @@ public class StructuresService {
 
     @Transactional
     public List<StructureElement> cancelStructures(List<StructureElementCommand> structureElements) {
-        // validate
-        //     outside of @Transactional
+        // validation outside method
         // transaction
         //     do
         //         for each structure element
@@ -1443,8 +1438,7 @@ public class StructuresService {
 
     @Transactional
     public List<StructureElement> rejectStructures(List<StructureElementCommand> structureElements) {
-        // validate
-        //     outside of @Transactional
+        // validation outside method
         // transaction
         //     do
         //         for each structure element
diff --git a/src/main/java/org/openepics/names/util/EssNamingConvention.java b/src/main/java/org/openepics/names/util/EssNamingConvention.java
index 4c49ac78..ba772ddc 100644
--- a/src/main/java/org/openepics/names/util/EssNamingConvention.java
+++ b/src/main/java/org/openepics/names/util/EssNamingConvention.java
@@ -51,8 +51,6 @@ public class EssNamingConvention implements NamingConvention {
     //     mnemonic for instance index may be omitted for ess name
     // ----------------------------------------------------------------------------------------------------
 
-    // Note revision history of file in repository.
-
     private static final String MNEMONIC_ALPHABETIC_LOWERCASE = "^[a-z]+$";
     private static final String MNEMONIC_ALPHANUMERIC         = "^[a-zA-Z0-9]+$";
     private static final String MNEMONIC_NUMERIC              = "^[0-9]+$";
@@ -76,6 +74,8 @@ public class EssNamingConvention implements NamingConvention {
 
     @Override
     public boolean isInstanceIndexValid(String conventionName, boolean overrideRuleset) {
+        // ability to override ruleset for administrator
+
         String instanceIndex = NamingConventionUtil.extractInstanceIndex(conventionName);
         if (overrideRuleset) {
             // previous rules, less restrictions
@@ -150,6 +150,7 @@ public class EssNamingConvention implements NamingConvention {
         // valid if
         //     length 1, 2, 3
         //     same mnemonic only once in mnemonic path
+
         if (!StringUtils.isEmpty(mnemonicPath)) {
             String[] values = NamingConventionUtil.string2MnemonicPath(mnemonicPath.trim());
             if (values.length > 3) {
diff --git a/src/main/java/org/openepics/names/util/NameElementUtil.java b/src/main/java/org/openepics/names/util/NameElementUtil.java
index 6618c2dc..852bddcf 100644
--- a/src/main/java/org/openepics/names/util/NameElementUtil.java
+++ b/src/main/java/org/openepics/names/util/NameElementUtil.java
@@ -126,27 +126,25 @@ public class NameElementUtil {
      * @return true if name element and name have same content, false otherwise
      */
     public static boolean hasSameContent(NameElementCommand nameElement, Name name, HolderIRepositories holderIRepositories, HolderSystemDeviceStructure holder) {
-        /*
-           NameElement
-               x parentsystemstructure (system group, system, subsystem)
-               x parentdevicestructure (device type)
-               x index
-               x name
-           NameElementCommand
-               uuid
-               parentsystemstructure
-               parentdevicestructure
-               index
-               description
-               comment
-           Name
-               x systemgroup_uuid
-               x system_uuid
-               x subsystem_uuid
-               x devicetype_uuid
-               x instance_index
-               x convention_name
-         */
+        // NameElement
+        //     x parentsystemstructure (system group, system, subsystem)
+        //     x parentdevicestructure (device type)
+        //     x index
+        //     x name
+        // NameElementCommand
+        //     uuid
+        //     parentsystemstructure
+        //     parentdevicestructure
+        //     index
+        //     description
+        //     comment
+        // Name
+        //     x systemgroup_uuid
+        //     x system_uuid
+        //     x subsystem_uuid
+        //     x devicetype_uuid
+        //     x instance_index
+        //     x convention_name
 
         // find out system group, system, subsystem
         //     one of the three expected to be non-null, other two expected to be null
diff --git a/src/main/java/org/openepics/names/util/NamingConvention.java b/src/main/java/org/openepics/names/util/NamingConvention.java
index db22c655..d02dfddf 100644
--- a/src/main/java/org/openepics/names/util/NamingConvention.java
+++ b/src/main/java/org/openepics/names/util/NamingConvention.java
@@ -35,20 +35,31 @@ import org.openepics.names.rest.beans.Type;
  * <p>
  * A device name consists of  elements having general structure
  * <ul>
- * <li> <pre>Sys-Sub:Dis-Dev-Idx</pre>
- * <li> <pre>Sup-Sys-Sub:Dis-Dev-Idx</pre>
+ * <li> System structure
+ * <ul>
+ * <li> Sg
+ * <li> Sys
+ * <li> Sys-Sub
+ * </ul>
+ * <li> System structure + Device structure + Index
+ * <ul>
+ * <li> Sg:Dis-Dev-Idx
+ * <li> Sys:Dis-Dev-Idx
+ * <li> Sys-Sub:Dis-Dev-Idx
+ * </ul>
  * </ul>
- * It consists of of <br/><br/>
+ * It consists of<br/><br/>
  * <ul>
  * <li> System structure
  * <ul>
- * <li> System group (Sup)(optional)
- * <li> System (Sys)
- * <li> Subsystem (Sub)
+ * <li> System group (Sg)(optional)
+ * <li> System       (Sys)
+ * <li> Subsystem    (Sub)
  * </ul>
  * <li> Device structure
  * <ul>
- * <li> Discipline (Dis)
+ * <li> Discipline  (Dis)
+ * <li> Device group
  * <li> Device type (Dev)
  * </ul>
  * <li> Device
@@ -104,10 +115,8 @@ import org.openepics.names.rest.beans.Type;
  * @author Karin Rathsman
  * @author Lars Johansson
  *
- * @see <a href="https://confluence.esss.lu.se/display/NC/ESS+Naming+Convention"/>
- *               https://confluence.esss.lu.se/display/NC/ESS+Naming+Convention</a>
- * @see <a href="https://chess.esss.lu.se/enovia/tvc-action/showObject/dmg_TechnicalSpecification/ESS-0000757/valid">
- *               https://chess.esss.lu.se/enovia/tvc-action/showObject/dmg_TechnicalSpecification/ESS-0000757/valid</a>
+ * @see <a href="https://chess.esss.lu.se/enovia/link/ESS-0000757/21308.51166.45568.45993/valid">
+ *               https://chess.esss.lu.se/enovia/link/ESS-0000757/21308.51166.45568.45993/valid</a>
  *
  * @see NamingConventionUtil
  */
diff --git a/src/main/java/org/openepics/names/util/StructureElementUtil.java b/src/main/java/org/openepics/names/util/StructureElementUtil.java
index 271182e6..4bb31efe 100644
--- a/src/main/java/org/openepics/names/util/StructureElementUtil.java
+++ b/src/main/java/org/openepics/names/util/StructureElementUtil.java
@@ -567,20 +567,18 @@ public class StructureElementUtil {
 
 
     private static boolean hasSameContent(StructureElement structureElement, NameStructure nameStructure) {
-        /*
-           StructureElement
-               x uuid
-               x description
-               x status
-               x latest
-               x deleted
-           NameStructure
-               x uuid
-               x description
-               x status
-               x latest
-               x deleted
-         */
+        // StructureElement
+        //     x uuid
+        //     x description
+        //     x status
+        //     x latest
+        //     x deleted
+        // NameStructure
+        //     x uuid
+        //     x description
+        //     x status
+        //     x latest
+        //     x deleted
 
         if (structureElement == null && nameStructure == null)
             return true;
@@ -619,14 +617,12 @@ public class StructureElementUtil {
     }
 
     private static boolean hasSameContent(StructureElement structureElement, Structure structure) {
-        /*
-           StructureElement
-               x name
-               x mnemonic
-           Structure
-               x name
-               x mnemonic
-         */
+        // StructureElement
+        //     x name
+        //     x mnemonic
+        // Structure
+        //     x name
+        //     x mnemonic
 
         if (!hasSameContent(structureElement, (NameStructure) structure))
             return false;
@@ -649,11 +645,9 @@ public class StructureElementUtil {
     }
 
     public static boolean hasSameContent(StructureElement structureElement, SystemGroup systemGroup) {
-        /*
-           StructureElement
-               x type
-           SystemGroup
-         */
+        // StructureElement
+        //     x type
+        // SystemGroup
 
         if (!hasSameContent(structureElement, (Structure) systemGroup))
             return false;
@@ -662,13 +656,11 @@ public class StructureElementUtil {
     }
 
     public static boolean hasSameContent(StructureElement structureElement, System system) {
-        /*
-           StructureElement
-               x type
-               x parent
-           System
-               x parent_uuid
-         */
+        // StructureElement
+        //     x type
+        //     x parent
+        // System
+        //     x parent_uuid
 
         if (!hasSameContent(structureElement, (Structure) system))
             return false;
@@ -686,13 +678,11 @@ public class StructureElementUtil {
     }
 
     public static boolean hasSameContent(StructureElement structureElement, Subsystem subsystem) {
-        /*
-           StructureElement
-               x type
-               x parent
-           Subsystem
-               x parent_uuid
-         */
+        // StructureElement
+        //     x type
+        //     x parent
+        // Subsystem
+        //     x parent_uuid
 
         if (!hasSameContent(structureElement, (Structure) subsystem))
             return false;
@@ -710,11 +700,9 @@ public class StructureElementUtil {
     }
 
     public static boolean hasSameContent(StructureElement structureElement, Discipline discipline) {
-        /*
-           StructureElement
-               x type
-           Discipline
-         */
+        // StructureElement
+        //     x type
+        // Discipline
 
         if (!hasSameContent(structureElement, (Structure) discipline))
             return false;
@@ -723,37 +711,33 @@ public class StructureElementUtil {
     }
 
     public static boolean hasSameContent(StructureElement structureElement, DeviceGroup deviceGroup) {
-        /*
-           StructureElement
-               x type
-               x parent
-           Subsystem
-               x parent_uuid
-         */
-
-         if (!hasSameContent(structureElement, (Structure) deviceGroup))
-             return false;
+        // StructureElement
+        //     x type
+        //     x parent
+        // Subsystem
+        //     x parent_uuid
 
-         if (!Type.DEVICEGROUP.equals(structureElement.getType())) {
-             return false;
-         }
-         if (structureElement.getParent() == null) {
-             if (deviceGroup.getParentUuid() != null)
-                 return false;
-         } else if (!structureElement.getParent().equals(deviceGroup.getParentUuid()))
-             return false;
+        if (!hasSameContent(structureElement, (Structure) deviceGroup))
+            return false;
 
-         return true;
+        if (!Type.DEVICEGROUP.equals(structureElement.getType())) {
+            return false;
+        }
+        if (structureElement.getParent() == null) {
+            if (deviceGroup.getParentUuid() != null)
+                return false;
+        } else if (!structureElement.getParent().equals(deviceGroup.getParentUuid()))
+            return false;
+
+        return true;
     }
 
     public static boolean hasSameContent(StructureElement structureElement, DeviceType deviceType) {
-        /*
-           StructureElement
-               x type
-               x parent
-           DeviceType
-               x parent_uuid
-         */
+        // StructureElement
+        //     x type
+        //     x parent
+        // DeviceType
+        //     x parent_uuid
 
          if (!hasSameContent(structureElement, (Structure) deviceType))
              return false;
diff --git a/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java b/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java
index b6c75ac0..94792086 100644
--- a/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java
+++ b/src/main/java/org/openepics/names/util/ValidateStructureElementUtil.java
@@ -802,7 +802,8 @@ public class ValidateStructureElementUtil {
             for (String existingPath : mnemonicPaths) {
                 validateStructuresMnemonicpathequivalenceDuplicate(
                         !StringUtils.equals(mnemonicpathEquivalence, namingConvention.equivalenceClassRepresentative(existingPath)),
-                        type, details, field);            }
+                        type, details, field);
+            }
         } else if (Type.DISCIPLINE.equals(type)) {
             validateStructuresMnemonicpathNotValid(path.length == 1, type, details, field);
 
-- 
GitLab