All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.hasor.tconsole.commands.GetSetExecutor Maven / Gradle / Ivy

There is a newer version: 4.2.5
Show newest version
/*
 * 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.tconsole.commands;
import net.hasor.core.Singleton;
import net.hasor.tconsole.CommandExecutor;
import net.hasor.tconsole.CommandRequest;
import net.hasor.tconsole.launcher.CmdRequest;
import net.hasor.utils.StringUtils;
/**
 * 在本次Telnet中设置环境变量,当Telnet连接断开变量失效
 * @version : 2016年4月3日
 * @author 赵永春 ([email protected])
 */
@Singleton
public class GetSetExecutor implements CommandExecutor {
    @Override
    public String helpInfo() {
        return "set/get environment variables of console .\r\n"//
                + " - get variableName                (returns variable Value.)\r\n"// 
                + " - set variableName variableValue  (set new values to variable.)";//
    }
    @Override
    public boolean inputMultiLine(CommandRequest request) {
        return false;
    }
    @Override
    public String doCommand(CommandRequest request) throws Throwable {
        request.setCommandAttr(CmdRequest.WITHOUT_AFTER_CLOSE_SESSION, true);//不关闭Session
        String[] args = request.getRequestArgs();
        String argsJoin = StringUtils.join(args, "");
        argsJoin = argsJoin.replace("\\s+", " ");
        args = argsJoin.split("=");
        //
        if (args.length > 0) {
            String cmd = request.getCommandString();
            String varName = args[0].trim();
            //
            if ("set".equalsIgnoreCase(cmd)) {
                if (args.length > 1) {
                    String varValue = args[1].trim();
                    request.setSessionAttr(varName, varValue);
                    return "[SUCCEED] set the new value.";
                } else {
                    return "[ERROR] args count error.";
                }
            }
            if ("get".equalsIgnoreCase(cmd)) {
                Object obj = request.getSessionAttr(varName);
                if (obj == null) {
                    return "";
                } else {
                    return obj.toString();//TODO may be is object
                }
            }
            //
            return "[ERROR] does not support command '" + request.getCommandString() + "'.";
        } else {
            return "[ERROR] args count error.";
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy