/* # Licensed Materials - Property of IBM # Copyright IBM Corp. 2014 */ package com.ibm.streamsx.inet.rest.servlets; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.ibm.json.java.JSONArray; import com.ibm.json.java.JSONObject; import com.ibm.streams.operator.Attribute; import com.ibm.streams.operator.OperatorContext; import com.ibm.streams.operator.StreamingData; /** * Returns a JSON object that describes the port's schema. * */ public class PortInfo extends HttpServlet { /** * */ private static final long serialVersionUID = -4211423812893544972L; private final OperatorContext context; private final StreamingData port; private final long lastModified = System.currentTimeMillis(); public PortInfo(OperatorContext context, StreamingData port) { this.context = context; this.port = port; } public long getLastModified() { return lastModified; } @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("application/json"); PrintWriter out = response.getWriter(); response.setStatus(HttpServletResponse.SC_OK); JSONObject info = new JSONObject(); info.put("operatorName", context.getName()); info.put("portName", port.getName()); JSONArray attributes = new JSONArray(); for (Attribute attr : port.getStreamSchema()) { JSONObject jattr = new JSONObject(); jattr.put("name", attr.getName()); jattr.put("type", attr.getType().getLanguageType()); attributes.add(jattr); } info.put("attributes", attributes); out.println(info.serialize()); out.flush(); out.close(); } }