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; |