From ee3a632572495ba764aba8600c851488139b9c9b Mon Sep 17 00:00:00 2001 From: Manuel Krombholz <s3866577@msx.tu-dresden.de> Date: Sun, 9 May 2021 22:23:37 +0200 Subject: [PATCH] Renamed StateData and moved some entities --- eraser-base/src/main/jastadd/Group.jrag | 5 ----- eraser-base/src/main/jastadd/Item.jrag | 6 +++--- .../main/jastadd/{StateData.jrag => LastChanged.jrag} | 10 +++++----- eraser-base/src/main/jastadd/Navigation.jrag | 10 +++++++--- eraser-base/src/main/jastadd/shem.relast | 4 ++-- .../inf/st/eraser/parser/EraserParserHelper.java | 6 +++--- 6 files changed, 20 insertions(+), 21 deletions(-) delete mode 100644 eraser-base/src/main/jastadd/Group.jrag rename eraser-base/src/main/jastadd/{StateData.jrag => LastChanged.jrag} (55%) diff --git a/eraser-base/src/main/jastadd/Group.jrag b/eraser-base/src/main/jastadd/Group.jrag deleted file mode 100644 index 2c973535..00000000 --- a/eraser-base/src/main/jastadd/Group.jrag +++ /dev/null @@ -1,5 +0,0 @@ -aspect Group { - eq Group.getItem().getEnclosingGroup() = this; - eq Group.getGroup().getEnclosingGroup() = this; - eq SmartHomeEntityModel.getGroup().getEnclosingGroup() = null; -} \ No newline at end of file diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag index 0ded5474..0ff309b6 100644 --- a/eraser-base/src/main/jastadd/Item.jrag +++ b/eraser-base/src/main/jastadd/Item.jrag @@ -21,7 +21,7 @@ aspect ItemHandling { eq ItemWithDoubleState.getStateAsString() = Double.toString(getState()); eq ItemWithStringState.getStateAsString() = getState(); - syn StateData Item.getStateData() = new StateData(); + syn LastChanged Item.getLastChanged() = new LastChanged(); //--- getStateAsDouble --- syn double Item.getStateAsDouble(); @@ -305,8 +305,8 @@ aspect ItemHandling { logger.catching(e); } } - if (this.getStateData().checkStateProcessingTime(relevantItemPerformance())) { - this.getStateData().afterStateChangeProcessed(); + if (this.getLastChanged().checkStateProcessingTime(relevantItemPerformance())) { + this.getLastChanged().afterStateChangeProcessed(); getItemObserver().apply(); } } diff --git a/eraser-base/src/main/jastadd/StateData.jrag b/eraser-base/src/main/jastadd/LastChanged.jrag similarity index 55% rename from eraser-base/src/main/jastadd/StateData.jrag rename to eraser-base/src/main/jastadd/LastChanged.jrag index e7d32a8a..16507474 100644 --- a/eraser-base/src/main/jastadd/StateData.jrag +++ b/eraser-base/src/main/jastadd/LastChanged.jrag @@ -1,14 +1,14 @@ -aspect StateData { - public void StateData.afterStateChangeProcessed() { - this.setLastChangeDate(Instant.now()); +aspect LastChanged { + public void LastChanged.afterStateChangeProcessed() { + this.setValue(Instant.now()); } - public boolean StateData.checkStateProcessingTime(ItemPerformance itemPerformance) { + public boolean LastChanged.checkStateProcessingTime(ItemPerformance itemPerformance) { if (itemPerformance==null) { return true; } double frequency = itemPerformance.getEventProcessingFrequency(); - Instant lastStateChange = this.getLastChangeDate(); + Instant lastStateChange = this.getValue(); if (lastStateChange==null) { return true; } diff --git a/eraser-base/src/main/jastadd/Navigation.jrag b/eraser-base/src/main/jastadd/Navigation.jrag index 42fd1bf8..d12dc50b 100644 --- a/eraser-base/src/main/jastadd/Navigation.jrag +++ b/eraser-base/src/main/jastadd/Navigation.jrag @@ -11,6 +11,10 @@ aspect Navigation { return result; } + eq Group.getItem().enclosingGroup() = this; + eq Group.getGroup().enclosingGroup() = this; + eq SmartHomeEntityModel.getGroup().enclosingGroup() = null; + inh ItemPerformance Item.relevantItemPerformance(); inh ItemPerformance Group.relevantItemPerformance(); eq Group.getItem(int index).relevantItemPerformance() { @@ -24,7 +28,7 @@ aspect Navigation { return this.getItemPerformance(); } // recursively use enclosing group and use value from there, if any - Group parent = getEnclosingGroup(); + Group parent = enclosingGroup(); if (parent != null) { return parent.relevantItemPerformance(); } @@ -32,8 +36,8 @@ aspect Navigation { return null; } - inh Group Group.getEnclosingGroup(); - inh Group Item.getEnclosingGroup(); + inh Group Group.enclosingGroup(); + inh Group Item.enclosingGroup(); private void SmartHomeEntityModel.addItems(java.util.List<Item> result, JastAddList<Group> groups) { groups.forEach(group -> group.getItemList().forEach(item -> result.add(item))); diff --git a/eraser-base/src/main/jastadd/shem.relast b/eraser-base/src/main/jastadd/shem.relast index 250c5714..0361ff59 100644 --- a/eraser-base/src/main/jastadd/shem.relast +++ b/eraser-base/src/main/jastadd/shem.relast @@ -26,7 +26,7 @@ rel Channel.LinkedItem* <-> Item.Channel? ; Parameter : DescribableModelElement ::= <Type:ParameterValueType> [DefaultValue:ParameterDefaultValue] <Context:String> <Required:boolean> ; ParameterDefaultValue ::= <Value:String> ; -abstract Item : LabelledModelElement ::= <_fetched_data:boolean> MetaData:ItemMetaData* /ItemObserver/ /StateData/; +abstract Item : LabelledModelElement ::= <_fetched_data:boolean> MetaData:ItemMetaData* /ItemObserver/ /LastChanged/; rel Item.Category? -> ItemCategory ; rel Item.ItemPerformance? -> ItemPerformance ; @@ -51,7 +51,7 @@ ItemMetaData ::= <Key:String> <Value:String> ; ItemCategory ::= <Name:String> ; -StateData ::= <LastChangeDate:Instant> ; +LastChanged ::= <Value:Instant> ; Group : LabelledModelElement ::= Group* Item* [AggregationFunction:GroupAggregationFunction] ; diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java index f5eeee1d..372cdb96 100644 --- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java +++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java @@ -35,7 +35,7 @@ public class EraserParserHelper { private Map<Thing, Iterable<String>> missingChannelListMap = new HashMap<>(); private Map<Channel, Iterable<String>> missingItemLinkListMap = new HashMap<>(); - private Map<Item, Iterable<String>> missingControllingListMap = new HashMap<>(); + private Map<Group, Iterable<String>> missingSubGroupListMap = new HashMap<>(); private Map<Group, Iterable<String>> missingItemListMap = new HashMap<>(); private Map<ThingType, Iterable<String>> missingChannelTypeListMap = new HashMap<>(); @@ -98,7 +98,7 @@ public class EraserParserHelper { resolveList(itemMap, missingItemListMap, this::addItemToGroup); resolveList(channelTypeMap, missingChannelTypeListMap, ThingType::addChannelType); resolveList(parameterMap, missingParameterListMap, ThingType::addParameter); - resolveList(itemMap, missingControllingListMap, Item::addControlling); + createUnknownGroupIfNecessary(); createChannelCategories(); @@ -109,6 +109,7 @@ public class EraserParserHelper { } this.root.treeResolveAll(); + this.root.doFullTraversal(); } private void addItemToGroup(Group group, Item item) { @@ -321,7 +322,6 @@ public class EraserParserHelper { } moveMissingForRetype(itemWithCorrectType, prototype, missingTopicMap); - moveMissingForRetype(itemWithCorrectType, prototype, missingControllingListMap); moveMissingForRetype(itemWithCorrectType, prototype, missingItemCategoryMap); itemMap.put(prototype.getID(), itemWithCorrectType); -- GitLab