Skip to main content
. 2023 Oct 6;23(19):8282. doi: 10.3390/s23198282
Algorithm 1: translateSpecific2Common


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
INPUT: platform-specific
OUTPUT: profile
platform ← current platform ID;
profile ← initialize to JSON object node;
conditions ← initialize to JSON array node;
actions ← initialize to JSON array node;
ruleConditionList ← parse platform-specific condition expression to RuleConditionList;
while ruleConditionList.hasNext() do
  condition ← initialize to JSON object node;
  ruleCondition ← ruleConditionList.next();
  condition.put(“parameter”, ruleCondition.getParameter());
  condition.put(“operator”, ruleCondition.getOperator());
  condition.put(“value”, ruleCondition.getValue());
  condition.put(“option”, ruleCondition.getOption());
  conditions.add(condition);
end
ruleActionList ← parse platform-specific actions to RuleActionList;
while ruleActionList.hasNext() do
action ← initialize to JSON object node;
ruleAction ← ruleActionList.next();
action.put(“uri”, ruleAction.getUri());
action.put(“command”, ruleAction.getCommand());
actions.add(action);
end
profile.set(“conditions”, conditions);
profile.set(“actions”, actions);
profile.set(“platform”, platform);
profile.set platform-specific properties with values;
return profile;