| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package backtype.storm.multilang; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| /** |
| * ShellMsg is an object that represents the data sent to a shell component from a process that implements a multi-language protocol. It is the union of all |
| * data types that a component can send to Storm. |
| * |
| * <p> |
| * ShellMsgs are objects received from the ISerializer interface, after the serializer has deserialized the data from the underlying wire protocol. The ShellMsg |
| * class allows for a decoupling between the serialized representation of the data and the data itself. |
| * </p> |
| */ |
| public class ShellMsg { |
| private String command; |
| private Object id; |
| private List<String> anchors; |
| private String stream; |
| private long task; |
| private String msg; |
| private List<Object> tuple; |
| private boolean needTaskIds; |
| |
| // metrics rpc |
| private String metricName; |
| private Object metricParams; |
| |
| // logLevel |
| public enum ShellLogLevel { |
| TRACE, DEBUG, INFO, WARN, ERROR; |
| |
| public static ShellLogLevel fromInt(int i) { |
| switch (i) { |
| case 0: |
| return TRACE; |
| case 1: |
| return DEBUG; |
| case 2: |
| return INFO; |
| case 3: |
| return WARN; |
| case 4: |
| return ERROR; |
| default: |
| return INFO; |
| } |
| } |
| } |
| |
| private ShellLogLevel logLevel = ShellLogLevel.INFO; |
| |
| public String getCommand() { |
| return command; |
| } |
| |
| public void setCommand(String command) { |
| this.command = command; |
| } |
| |
| public Object getId() { |
| return id; |
| } |
| |
| public void setId(Object id) { |
| this.id = id; |
| } |
| |
| public List<String> getAnchors() { |
| return anchors; |
| } |
| |
| public void setAnchors(List<String> anchors) { |
| this.anchors = anchors; |
| } |
| |
| public void addAnchor(String anchor) { |
| if (anchors == null) { |
| anchors = new ArrayList<String>(); |
| } |
| this.anchors.add(anchor); |
| } |
| |
| public String getStream() { |
| return stream; |
| } |
| |
| public void setStream(String stream) { |
| this.stream = stream; |
| } |
| |
| public long getTask() { |
| return task; |
| } |
| |
| public void setTask(long task) { |
| this.task = task; |
| } |
| |
| public String getMsg() { |
| return msg; |
| } |
| |
| public void setMsg(String msg) { |
| this.msg = msg; |
| } |
| |
| public List<Object> getTuple() { |
| return tuple; |
| } |
| |
| public void setTuple(List<Object> tuple) { |
| this.tuple = tuple; |
| } |
| |
| public void addTuple(Object tuple) { |
| if (this.tuple == null) { |
| this.tuple = new ArrayList<Object>(); |
| } |
| this.tuple.add(tuple); |
| } |
| |
| public boolean areTaskIdsNeeded() { |
| return needTaskIds; |
| } |
| |
| public void setNeedTaskIds(boolean needTaskIds) { |
| this.needTaskIds = needTaskIds; |
| } |
| |
| public void setMetricName(String metricName) { |
| this.metricName = metricName; |
| } |
| |
| public String getMetricName() { |
| return this.metricName; |
| } |
| |
| public void setMetricParams(Object metricParams) { |
| this.metricParams = metricParams; |
| } |
| |
| public Object getMetricParams() { |
| return metricParams; |
| } |
| |
| public ShellLogLevel getLogLevel() { |
| return logLevel; |
| } |
| |
| public void setLogLevel(int logLevel) { |
| this.logLevel = ShellLogLevel.fromInt(logLevel); |
| } |
| |
| @Override |
| public String toString() { |
| return "ShellMsg{" + "command='" + command + '\'' + ", id=" + id + ", anchors=" + anchors + ", stream='" + stream + '\'' + ", task=" + task + ", msg='" |
| + msg + '\'' + ", tuple=" + tuple + ", needTaskIds=" + needTaskIds + ", metricName='" + metricName + '\'' + ", metricParams=" + metricParams |
| + ", logLevel=" + logLevel + '}'; |
| } |
| } |