/* # Licensed Materials - Property of IBM # Copyright IBM Corp. 2014 */ package com.ibm.streamsx.inet.rest.setup; import java.util.ArrayList; import java.util.List; import com.ibm.json.java.JSONArray; import com.ibm.json.java.JSONObject; import com.ibm.streams.operator.OperatorContext; import com.ibm.streams.operator.StreamingData; import com.ibm.streams.operator.StreamingInput; /** * Represents meta-data for a port and its URLs. */ public class ExposedPort { private final OperatorContext context; private final StreamingData port; private final String portsContext; private final JSONObject contextPaths; public ExposedPort(OperatorContext context, StreamingData port, String portsContext) { super(); this.context = context; this.port = port; this.portsContext = portsContext; contextPaths = new JSONObject(); // Automatically add in the generated port info links addURL("info", (port instanceof StreamingInput ? "/input/" : "/output/") + port.getPortNumber() + "/info"); } public OperatorContext getOpContext() { return context;} public StreamingData getPort() {return port;} void addURL(String key, String path) { contextPaths.put(key, portsContext + path); } public JSONObject getSummary() { JSONObject summary = new JSONObject(); summary.put("operatorName", context.getName()); summary.put("operatorKind", context.getKind()); summary.put("portName", port.getName()); summary.put("contextPaths", contextPaths); return summary; } }