/*
* Tencent is pleased to support the open source community by making
* Tencent GT (Version 2.4 and subsequent versions) available.
*
* Notwithstanding anything to the contrary herein, any previous version
* of Tencent GT shall not be subject to the license hereunder.
* All right, title, and interest, including all intellectual property rights,
* in and to the previous version of Tencent GT (including any and all copies thereof)
* shall be owned and retained by Tencent and subject to the license under the
* Tencent GT End User License Agreement (http://gt.qq.com/wp-content/EULA_EN.html).
*
* Copyright (C) 2015 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* 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 com.tencent.wstt.gt.manager;
import java.util.List;
import com.tencent.wstt.gt.InPara;
import com.tencent.wstt.gt.OutPara;
public abstract class Client {
protected String key;
protected IInParaManager inParaManager;
protected IOutParaManager outParaManager;
public Client(String key)
{
this.key = key;
}
public String getKey() {
return key;
}
// 内部使用方法,包作用域即可
void setInParaManager(IInParaManager inParaManager) {
this.inParaManager = inParaManager;
}
// 内部使用方法,包作用域即可
void setOutParaManager(IOutParaManager outParaManager) {
this.outParaManager = outParaManager;
}
/**
* 注册初始入参,并返回这些入参的管理对象
* @param inParas
* @return 入参的管理对象
*/
public abstract IInParaManager initInParas(InPara[] inParas);
/**
* 注册初始出参,并返回这些出参的管理对象
* @param outParas
* @return 出参的管理对象
*/
public abstract IOutParaManager initOutParas(OutPara[] outParas);
public void clear()
{
inParaManager.clear();
outParaManager.clear();
}
//==============================出参相关方法===============================
public void register(OutPara para)
{
outParaManager.register(para);
}
public void registerOutPara(String paraName, String alias)
{
outParaManager.register(paraName, alias);
}
public void unregisterOutPara(String paraName)
{
outParaManager.removeOutPara(paraName);
}
public boolean isOutParaEmpty()
{
return outParaManager.isEmpty();
}
public OutPara getOutPara(String paraName) {
return outParaManager.getOutPara(paraName);
}
public void setOutparaMonitor(String str, boolean flag) {
outParaManager.setOutparaMonitor(str, flag);
}
public List<OutPara> getAllOutParas()
{
return outParaManager.getAll();
}
/**
* 设置输出参数值,值类型为String型,更新的输出参数值会在控制台和输出界面中展示。
*
* @param ParaName
* 输出参数的名称
* @param value
* 输出参数的值
* @param inlog
* 本次设置操作是否打印到日志中记录
*/
public void setOutPara(String paraName, String value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(value);
}
}
/**
* 设置输出参数值,值类型为boolean型,更新的输出参数值会在控制台和输出界面中展示。
*
* @param ParaName
* 输出参数的名称
* @param value
* 输出参数的值
* @param inlog
* 本次设置操作是否打印到日志中记录
*/
public void setOutPara(String paraName, boolean value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(String.valueOf(value));
}
}
/**
* 设置输出参数值,值类型为int型,更新的输出参数值会在控制台和输出界面中展示。
*
* @param ParaName
* 输出参数的名称
* @param value
* 输出参数的值
* @param inlog
* 本次设置操作是否打印到日志中记录
*/
public void setOutPara(String paraName, int value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(String.valueOf(value));
// add on 20130923 为了出参支持历史曲线
OpPerfBridge.addHistory(outPara, outPara.getValue(), value);
}
}
public void setOutPara(String paraName, long time, int value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(time, String.valueOf(value));
// add on 20130923 为了出参支持历史曲线
OpPerfBridge.addHistory(outPara, outPara.getValue(), time, value);
}
}
/**
* 设置输出参数值,值类型为long型,更新的输出参数值会在控制台和输出界面中展示。
*
* @param ParaName
* 输出参数的名称
* @param value
* 输出参数的值
* @param inlog
* 本次设置操作是否打印到日志中记录
*/
public void setOutPara(String paraName, long value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(String.valueOf(value));
// add on 20130923 为了出参支持历史曲线
OpPerfBridge.addHistory(outPara, outPara.getValue(), value);
}
}
public void setOutPara(String paraName, long time, long value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(time, String.valueOf(value));
// add on 20130923 为了出参支持历史曲线
OpPerfBridge.addHistory(outPara, outPara.getValue(), time, value);
}
}
/**
* 设置输出参数值,值类型为short型,更新的输出参数值会在控制台和输出界面中展示。
*
* @param ParaName
* 输出参数的名称
* @param value
* 输出参数的值
* @param inlog
* 本次设置操作是否打印到日志中记录
*/
public void setOutPara(String paraName, short value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(String.valueOf(value));
// add on 20130923 为了出参支持历史曲线
OpPerfBridge.addHistory(outPara, outPara.getValue(), value);
}
}
public void setOutPara(String paraName, long time, short value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(time, String.valueOf(value));
// add on 20130923 为了出参支持历史曲线
OpPerfBridge.addHistory(outPara, outPara.getValue(), time, value);
}
}
/**
* 设置输出参数值,值类型为char型,更新的输出参数值会在控制台和输出界面中展示。
*
* @param ParaName
* 输出参数的名称
* @param value
* 输出参数的值
* @param inlog
* 本次设置操作是否打印到日志中记录
*/
public void setOutPara(String paraName, char value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(String.valueOf(value));
}
}
/**
* 设置输出参数值,值类型为double型,更新的输出参数值会在控制台和输出界面中展示。
*
* @param ParaName
* 输出参数的名称
* @param value
* 输出参数的值
* @param inlog
* 本次设置操作是否打印到日志中记录
*/
public void setOutPara(String paraName, double value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(String.valueOf(value));
}
}
/**
* 设置输出参数值,值类型为float型,更新的输出参数值会在控制台和输出界面中展示。
*
* @param ParaName
* 输出参数的名称
* @param value
* 输出参数的值
* @param inlog
* 本次设置操作是否打印到日志中记录
*/
public void setOutPara(String paraName, float value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(String.valueOf(value));
}
}
/**
* 设置输出参数值,值类型为object型,更新的输出参数值会在控制台和输出界面中展示。
*
* @param ParaName
* 输出参数的名称
* @param value
* 输出参数的值
* @param inlog
* 本次设置操作是否打印到日志中记录
*/
public void setOutPara(String paraName, Object value){
OutPara outPara = getOutPara(paraName);
if(null != outPara && OutPara.DISPLAY_DISABLE != outPara.getDisplayProperty()){
outPara.setValue(String.valueOf(value));
}
}
//==============================入参相关方法===============================
public void registerInPara(String paraName, String alias, String defaultValue,
String... optionalValues)
{
inParaManager.register(paraName, alias, defaultValue, optionalValues);
}
/**
* 由客户端首次注册,直接入缓存
* @param para
*/
public void register(InPara para)
{
inParaManager.register(para);
}
public void unregisterInPara(String paraName)
{
inParaManager.removeOutPara(paraName);
}
public boolean isInParaEmpty()
{
return inParaManager.isEmpty();
}
public List<InPara> getAllInParas()
{
return inParaManager.getAll();
}
public InPara getInPara(int positon)
{
return inParaManager.getInPara(positon);
}
public InPara getInPara(String paraName)
{
return inParaManager.getInPara(paraName);
}
public String getInPara(String paraName, String origVal)
{
return inParaManager.getInPara(paraName, origVal);
}
public boolean getInPara(String paraName, boolean origVal){
return inParaManager.getInPara(paraName, origVal);
}
public int getInPara(String paraName, int origVal){
return inParaManager.getInPara(paraName, origVal);
}
public float getInPara(String paraName, float origVal){
return inParaManager.getInPara(paraName, origVal);
}
public double getInPara(String paraName, double origVal){
return inParaManager.getInPara(paraName, origVal);
}
public short getInPara(String paraName, short origVal){
return inParaManager.getInPara(paraName, origVal);
}
public byte getInPara(String paraName, byte origVal){
return inParaManager.getInPara(paraName, origVal);
}
public long getInPara(String paraName, long origVal){
return inParaManager.getInPara(paraName, origVal);
}
}