From 66441f7edd50d027c10d05ca60cc8b30be7ed471 Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Tue, 30 Apr 2019 16:24:16 +0200 Subject: [PATCH] Remove Link nonterminal, merged into Channel. - Fixed openhab importer test --- eraser-base/src/main/jastadd/Navigation.jrag | 4 ---- eraser-base/src/main/jastadd/Printing.jrag | 2 +- eraser-base/src/main/jastadd/openhab.relast | 5 ++--- .../tudresden/inf/st/eraser/openhab2/OpenHab2Importer.java | 4 +--- .../tudresden/inf/st/eraser/parser/EraserParserHelper.java | 2 +- eraser-base/src/test/resources/openhabtest/oh2/links.json | 2 +- eraser-base/src/test/resources/openhabtest/oh2/output.eraser | 2 +- 7 files changed, 7 insertions(+), 14 deletions(-) diff --git a/eraser-base/src/main/jastadd/Navigation.jrag b/eraser-base/src/main/jastadd/Navigation.jrag index bb57ce61..e75f39c8 100644 --- a/eraser-base/src/main/jastadd/Navigation.jrag +++ b/eraser-base/src/main/jastadd/Navigation.jrag @@ -116,10 +116,6 @@ aspect Navigation { return java.util.Optional.empty(); } - //--- containingChannel --- - inh Channel Link.containingChannel(); - eq Channel.getLink().containingChannel() = this; - //--- containingThing --- inh Thing Channel.containingThing(); eq Thing.getChannel().containingThing() = this; diff --git a/eraser-base/src/main/jastadd/Printing.jrag b/eraser-base/src/main/jastadd/Printing.jrag index 3c463ac7..3bfa5280 100644 --- a/eraser-base/src/main/jastadd/Printing.jrag +++ b/eraser-base/src/main/jastadd/Printing.jrag @@ -160,7 +160,7 @@ aspect Printing { return new MemberPrinter("Channel") .addRequired("id", getID()) .addRequired("type", getType(), ChannelType::getID) - .addIds("links", getNumLink(), getLinkList(), Link::getItem) + .addIds("links", getLinkedItems()) .build(); } diff --git a/eraser-base/src/main/jastadd/openhab.relast b/eraser-base/src/main/jastadd/openhab.relast index e26d7b00..6f5b378e 100644 --- a/eraser-base/src/main/jastadd/openhab.relast +++ b/eraser-base/src/main/jastadd/openhab.relast @@ -16,10 +16,9 @@ abstract ChannelCategory ; DefaultChannelCategory : ChannelCategory ::= <Value:DefaultChannelCategoryValue> ; SimpleChannelCategory : ChannelCategory ::= <Value:String> ; -Channel : ModelElement ::= Link* ; +Channel : ModelElement ::= ; rel Channel.Type -> ChannelType ; - -Link ::= <Item:Item> ; +rel Channel.LinkedItem* <-> Item.Channel? ; Parameter : DescribableModelElement ::= <Type:ParameterValueType> [DefaultValue:ParameterDefaultValue] <Context:String> <Required:boolean> ; ParameterDefaultValue ::= <Value:String> ; diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/openhab2/OpenHab2Importer.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/openhab2/OpenHab2Importer.java index 627167f8..19f0dff8 100644 --- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/openhab2/OpenHab2Importer.java +++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/openhab2/OpenHab2Importer.java @@ -311,10 +311,8 @@ public class OpenHab2Importer { private void update(Root model, LinkData[] linkList) { for (LinkData linkData : linkList) { - Link link = new Link(); ifPresent(model.resolveChannel(linkData.channelUID), "Channel", linkData, - channel -> channel.addLink(link)); - ifPresent(model.resolveItem(linkData.itemName), "Item", linkData, link::setItem); + channel -> ifPresent(model.resolveItem(linkData.itemName), "Item", linkData, channel::addLinkedItem)); } } 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 2aa34c77..ea392f2a 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 @@ -73,7 +73,7 @@ public class EraserParserHelper { this.root.getMqttRoot().ensureCorrectPrefixes(); resolveList(channelMap, missingChannelListMap, Thing::addChannel); - resolveList(itemMap, missingItemLinkListMap, (channel, item) -> channel.addLink(new Link(item))); + resolveList(itemMap, missingItemLinkListMap, Channel::addLinkedItem); resolveList(groupMap, missingSubGroupListMap, Group::addGroup); resolveList(itemMap, missingItemListMap, this::addItemToGroup); resolveList(channelTypeMap, missingChannelTypeListMap, ThingType::addChannelType); diff --git a/eraser-base/src/test/resources/openhabtest/oh2/links.json b/eraser-base/src/test/resources/openhabtest/oh2/links.json index 79e79442..f881db06 100644 --- a/eraser-base/src/test/resources/openhabtest/oh2/links.json +++ b/eraser-base/src/test/resources/openhabtest/oh2/links.json @@ -142,7 +142,7 @@ { "channelUID": "openlicht:polar-m600:342dfc32:rotation-y", "configuration": {}, - "itemName": "watch_acceleration_y" + "itemName": "watch_rotation_y" }, { "channelUID": "openlicht:polar-m600:342dfc32:rotation-z", diff --git a/eraser-base/src/test/resources/openhabtest/oh2/output.eraser b/eraser-base/src/test/resources/openhabtest/oh2/output.eraser index c5e13993..45f5a639 100644 --- a/eraser-base/src/test/resources/openhabtest/oh2/output.eraser +++ b/eraser-base/src/test/resources/openhabtest/oh2/output.eraser @@ -77,7 +77,7 @@ Channel: id="openlicht:polar-m600:342dfc32:activity" type="openlicht:activity-ty Channel: id="openlicht:polar-m600:342dfc32:brightness" type="openlicht:brightness-type" links=["polar_brightness"] ; Channel: id="openlicht:polar-m600:342dfc32:heart-rate" type="openlicht:heart-rate-type" ; Channel: id="openlicht:polar-m600:342dfc32:rotation-x" type="openlicht:rotation-type" links=["watch_rotation_x"] ; -Channel: id="openlicht:polar-m600:342dfc32:rotation-y" type="openlicht:rotation-type" links=["watch_acceleration_y"] ; +Channel: id="openlicht:polar-m600:342dfc32:rotation-y" type="openlicht:rotation-type" links=["watch_rotation_y"] ; Channel: id="openlicht:polar-m600:342dfc32:rotation-z" type="openlicht:rotation-type" links=["watch_rotation_z"] ; Channel: id="openlicht:polar-m600:342dfc32:steps" type="openlicht:steps-type" ; Channel: id="openlicht:samsung-s6:2ca84896:brightness" type="openlicht:brightness-type" links=["samsung_brightness"] ; -- GitLab