Package de.innovationgate.wgpublisher.expressions.tmlscript.wgaglobal

Source Code of de.innovationgate.wgpublisher.expressions.tmlscript.wgaglobal.Master

/*******************************************************************************
* Copyright 2009, 2010 Innovation Gate GmbH. All Rights Reserved.
*
* This file is part of the OpenWGA server platform.
*
* OpenWGA is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* In addition, a special exception is granted by the copyright holders
* of OpenWGA called "OpenWGA plugin exception". You should have received
* a copy of this exception along with OpenWGA in file COPYING.
* If not, see <http://www.openwga.com/gpl-plugin-exception>.
*
* OpenWGA is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenWGA in file COPYING.
* If not, see <http://www.gnu.org/licenses/>.
******************************************************************************/

package de.innovationgate.wgpublisher.expressions.tmlscript.wgaglobal;

import de.innovationgate.ext.org.mozilla.javascript.Context;
import de.innovationgate.ext.org.mozilla.javascript.Function;
import de.innovationgate.ext.org.mozilla.javascript.NativeObject;
import de.innovationgate.ext.org.mozilla.javascript.Scriptable;
import de.innovationgate.ext.org.mozilla.javascript.WrappedException;
import de.innovationgate.wga.common.CodeCompletion;
import de.innovationgate.wgpublisher.expressions.tmlscript.RhinoExpressionEngineImpl;
import de.innovationgate.wgpublisher.expressions.tmlscript.VarArgParser;
import de.innovationgate.wgpublisher.webtml.utils.TMLContext;

@CodeCompletion(delegate=MasterCC.class)
public class Master extends NativeObject {
   
    private static VarArgParser _runMasterFunctionVarargs;
    private static VarArgParser _runMasterMethodVarargs;
    static {
        _runMasterFunctionVarargs = (new VarArgParser("runMasterFunction"))
        .add("context", TMLContext.class, true)
        .add("function", Function.class, false)
        .pack();
        _runMasterFunctionVarargs.setUnwrapOverflowArgs(true);
       
        _runMasterMethodVarargs = (new VarArgParser("runMasterMethod"))
        .add("function", Function.class, false)
        .pack();
        _runMasterMethodVarargs.setUnwrapOverflowArgs(true);
    }

    public Master() {
        super();
        String[] functions = { "runFunction", "runMethod" };
        defineFunctionProperties(functions, Master.class, DONTENUM);
        sealObject();
       
    }
   
    public static Object runFunction(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj) {
        try {
            RhinoExpressionEngineImpl runtime = WGAGlobal.fetchRuntime(cx);
            VarArgParser.Arguments parsedArgs = _runMasterFunctionVarargs.parse(args);
           
            Function function = (Function) parsedArgs.get("function");
            TMLContext context = (TMLContext) parsedArgs.get("context");
            if (context == null) {
                context = WGAGlobal.fetchInitialContext(Context.getCurrentContext());
            }
           
            Object returnValue = runtime.runAsMaster(function, context, parsedArgs.getOverflowArgs().toArray());
            if (returnValue != null) {
                return Context.javaToJS(returnValue, thisObj);
            }
            else {
                return null;
            }
        }
        catch (Exception e) {
            throw new WrappedException(e);
        }
    }
   
    public static Object runMethod(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj) {
        try {
            RhinoExpressionEngineImpl runtime = WGAGlobal.fetchRuntime(cx);
            VarArgParser.Arguments parsedArgs = _runMasterMethodVarargs.parse(args);
           
            Function function = (Function) parsedArgs.get("function");
            Object returnValue = runtime.runAsMaster(function, null, parsedArgs.getOverflowArgs().toArray());
            if (returnValue != null) {
                return Context.javaToJS(returnValue, thisObj);
            }
            else {
                return null;
            }
        }
        catch (Exception e) {
            throw new WrappedException(e);
        }
    }
   
   
}
TOP

Related Classes of de.innovationgate.wgpublisher.expressions.tmlscript.wgaglobal.Master

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.