Package railo.runtime.spooler

Source Code of railo.runtime.spooler.SpoolerTaskWS

package railo.runtime.spooler;

import railo.runtime.config.Config;
import railo.runtime.config.RemoteClient;
import railo.runtime.exp.PageException;
import railo.runtime.net.rpc.client.RPCClient;
import railo.runtime.op.Caster;
import railo.runtime.type.Struct;
import railo.runtime.type.StructImpl;

public abstract class SpoolerTaskWS extends SpoolerTaskSupport {
 
  private RemoteClient client;
   
   
  public SpoolerTaskWS(ExecutionPlan[] plans,RemoteClient client) {
    super(plans);
    this.client=client;
  }

  @Override
  public final Object execute(Config config) throws PageException {
    try {
      RPCClient rpc = getRPCClient(client);
      return rpc.callWithNamedValues(config, getMethodName(), getArguments());
    }
    catch (Throwable t) {
      throw Caster.toPageException(t);
    }
  }
 
  @Override
  public String subject() {
    return client.getLabel();
  }

  @Override
  public Struct detail() {
    Struct sct=new StructImpl();
    sct.setEL("label", client.getLabel());
    sct.setEL("url", client.getUrl());
   
    return sct;
  }
 
  public static RPCClient getRPCClient(RemoteClient client) throws PageException {
    return new RPCClient(client.getUrl(),client.getServerUsername(),client.getServerPassword(),client.getProxyData());
  }


  protected abstract String getMethodName();
  protected abstract Struct getArguments();
}
TOP

Related Classes of railo.runtime.spooler.SpoolerTaskWS

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.