/*
* Copyright 2008-2009 the original author or authors.
*
* Licensed 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 net.hasor.rsf.domain;
import java.util.ArrayList;
import java.util.List;
/**
* RSF Request 的化身,是封装 Request 的数据对象。
* @version : 2014年10月25日
* @author 赵永春(zyc@hasor.net)
*/
public class RequestInfo extends OptionInfo {
private long requestID = 0; //请求ID
private long receiveTime = 0; //接收请求(本地时间戳)
private String serviceName = null; //远程服务名
private String serviceGroup = null; //远程服务分组
private String serviceVersion = null; //远程服务版本
private String targetMethod = null; //远程服务方法名
private String serializeType = null; //序列化策略
private int clientTimeout = 0; //远程调用时最大忍受等待时间
private boolean isMessage = false;//是否为消息请求
private List<String> paramTypes = null; //参数类型
private List<byte[]> paramValueBytes = null; //参数值
private List<Object> paramValues = null; //参数值
//
//
public RequestInfo() {
this.paramTypes = new ArrayList<String>();
this.paramValueBytes = new ArrayList<byte[]>();
this.paramValues = new ArrayList<Object>();
}
/**获取请求ID。*/
public long getRequestID() {
return this.requestID;
}
/**设置请求ID。*/
public void setRequestID(long requestID) {
this.requestID = requestID;
}
/**数据包到达时间*/
public void setReceiveTime(long receiveTime) {
this.receiveTime = receiveTime;
}
/**数据包到达时间*/
public long getReceiveTime() {
return this.receiveTime;
}
/**获取服务名*/
public String getServiceName() {
return this.serviceName;
}
/**设置服务名*/
public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
/**获取服务分组*/
public String getServiceGroup() {
return this.serviceGroup;
}
/**设置服务分组*/
public void setServiceGroup(String serviceGroup) {
this.serviceGroup = serviceGroup;
}
/**获取服务版本*/
public String getServiceVersion() {
return this.serviceVersion;
}
/**设置服务版本*/
public void setServiceVersion(String serviceVersion) {
this.serviceVersion = serviceVersion;
}
/**获取调用的方法名*/
public String getTargetMethod() {
return this.targetMethod;
}
/**设置调用的方法名*/
public void setTargetMethod(String targetMethod) {
this.targetMethod = targetMethod;
}
/**获取序列化类型*/
public String getSerializeType() {
return this.serializeType;
}
/**设置序列化类型*/
public void setSerializeType(String serializeType) {
this.serializeType = serializeType;
}
/**获取远程客户端调用超时时间。*/
public int getClientTimeout() {
return this.clientTimeout;
}
/**设置远程客户端调用超时时间。*/
public void setClientTimeout(int clientTimeout) {
this.clientTimeout = clientTimeout;
}
/**是否为消息请求*/
public boolean isMessage() {
return isMessage;
}
/**设置是否为消息请求*/
public void setMessage(boolean message) {
isMessage = message;
}
//
/**添加请求参数。*/
public void addParameter(String paramType, byte[] paramByte, Object paramValue) {
this.paramTypes.add(paramType);
this.paramValues.add(paramValue);
this.paramValueBytes.add(paramByte);
}
/**添加请求参数。*/
public void updateParameter(int index, String paramType, byte[] paramByte, Object paramValue) {
if (index < 0 || index > this.paramTypes.size()) {
throw new IndexOutOfBoundsException("index out of range 0~" + this.paramTypes.size());
}
this.paramTypes.set(index, paramType);
this.paramValues.set(index, paramValue);
this.paramValueBytes.set(index, paramByte);
}
/**获取请求参数类型列表。*/
public List<String> getParameterTypes() {
return this.paramTypes;
}
/**获取请求参数值列表。*/
public List<Object> getParameterValues() {
return this.paramValues;
}
/**获取请求参数值列表。*/
public List<byte[]> getParameterBytes() {
return this.paramValueBytes;
}
}