diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/.ratings b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/.ratings index b8a101a5b4ac7e05798218d6e86a75bbce016d43..7e07b0c16d41a95f1137d0260602b9d7e3c3fc64 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/.ratings +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/.ratings @@ -12,4 +12,4 @@ MigrationUtils.java e54370b19148ff656d7563e8188baccd947c24d5 GREEN PrototypesUtils.java 538b5edbab06e95bc32e81309482e36a4bc64d1e GREEN ResourceUtils.java 8ab06ad3b72fdb2b1925e2ccbedcfea35e36cf24 GREEN TransformationUtils.java f159b17ac1ce2ce0d94c1a873d74e052ac2dc74b GREEN -UniqueIDUtils.java f8b053bf64835d8a441192f7681fda0655a98469 YELLOW +UniqueIDUtils.java 758dd39d869297fa074926ca9298ac82c012872e YELLOW diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/UniqueIDUtils.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/UniqueIDUtils.java index e96bd49aadcb11b92999d7ba053c1fb809d86581..99cf0934ee27a95f4b6edbc251e6ff24e5d1d7f7 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/UniqueIDUtils.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/utils/UniqueIDUtils.java @@ -34,6 +34,15 @@ import org.fortiss.tooling.kernel.service.IPersistencyService; * @author hoelzl */ public class UniqueIDUtils { + /** Helper to implement {@link #generateMissingIDs(EObject, int)}. */ + private static int setMissingId(EObject object, int currentMaxId) { + if(object instanceof IIdLabeled) { + if(((IIdLabeled)object).getId() <= 0) { + ((IIdLabeled)object).setId((++currentMaxId)); + } + } + return currentMaxId; + } /** * Generates missing IDs of the given model starting from the given current @@ -47,13 +56,11 @@ public class UniqueIDUtils { * @return The maximum ID after the generation of missing IDs. */ public static int generateMissingIDs(EObject existingModel, int currentMaxId) { + currentMaxId = setMissingId(existingModel, currentMaxId); + for(Iterator<EObject> i = existingModel.eAllContents(); i.hasNext();) { EObject eo = i.next(); - if(eo instanceof IIdLabeled) { - if(((IIdLabeled)eo).getId() <= 0) { - ((IIdLabeled)eo).setId((++currentMaxId)); - } - } + currentMaxId = setMissingId(eo, currentMaxId); } return currentMaxId; }