org.teleal.cling.controlpoint
Class ActionCallback

java.lang.Object
  extended by org.teleal.cling.controlpoint.ActionCallback
All Implemented Interfaces:
Runnable
Direct Known Subclasses:
ActionCallback.Default

public abstract class ActionCallback
extends Object
implements Runnable

Execute actions on any service.

Usage example for asynchronous execution in a background thread:

 Service service = device.findService(new UDAServiceId("SwitchPower"));
 Action getStatusAction = service.getAction("GetStatus");
 ActionInvocation getStatusInvocation = new ActionInvocation(getStatusAction);

 ActionCallback getStatusCallback = new ActionCallback(getStatusInvocation) {

      public void success(ActionInvocation invocation) {
          ActionArgumentValue status  = invocation.getOutput("ResultStatus");
          assertEquals((Boolean) status.getValue(), Boolean.valueOf(false));
      }

      public void failure(ActionInvocation invocation, UpnpResponse res) {
          System.err.println(
              createDefaultFailureMessage(invocation, res)
          );
      }
 };

 upnpService.getControlPoint().execute(getStatusCallback)
 

You can also execute the action synchronously in the same thread using the ActionCallback.Default implementation:

 myActionInvocation.setInput("foo", bar);
 new ActionCallback.Default(myActionInvocation, upnpService.getControlPoint()).run();
 myActionInvocation.getOutput("baz");
 

Author:
Christian Bauer

Nested Class Summary
static class ActionCallback.Default
          Empty implementation of callback methods, simplifies synchronous execution of an ActionInvocation.
 
Field Summary
protected  ActionInvocation actionInvocation
           
protected  ControlPoint controlPoint
           
 
Constructor Summary
protected ActionCallback(ActionInvocation actionInvocation)
           
protected ActionCallback(ActionInvocation actionInvocation, ControlPoint controlPoint)
           
 
Method Summary
protected  String createDefaultFailureMessage(ActionInvocation invocation, UpnpResponse operation)
           
abstract  void failure(ActionInvocation invocation, UpnpResponse operation)
          Called when the action invocation failed.
 ActionInvocation getActionInvocation()
           
 ControlPoint getControlPoint()
           
 void run()
           
 ActionCallback setControlPoint(ControlPoint controlPoint)
           
abstract  void success(ActionInvocation invocation)
          Called when the action invocation succeeded.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

actionInvocation

protected final ActionInvocation actionInvocation

controlPoint

protected ControlPoint controlPoint
Constructor Detail

ActionCallback

protected ActionCallback(ActionInvocation actionInvocation,
                         ControlPoint controlPoint)

ActionCallback

protected ActionCallback(ActionInvocation actionInvocation)
Method Detail

getActionInvocation

public ActionInvocation getActionInvocation()

getControlPoint

public ControlPoint getControlPoint()

setControlPoint

public ActionCallback setControlPoint(ControlPoint controlPoint)

run

public void run()
Specified by:
run in interface Runnable

createDefaultFailureMessage

protected String createDefaultFailureMessage(ActionInvocation invocation,
                                             UpnpResponse operation)

success

public abstract void success(ActionInvocation invocation)
Called when the action invocation succeeded.

Parameters:
invocation - The successful invocation, call its getOutput() method for results.

failure

public abstract void failure(ActionInvocation invocation,
                             UpnpResponse operation)
Called when the action invocation failed.

Use the convenience method createDefaultFailureMessage(org.teleal.cling.model.action.ActionInvocation, org.teleal.cling.model.message.UpnpResponse) to render a simple error message.

Parameters:
invocation - The failed invocation, call its getFailure() method for more details.
operation - If the invocation was on a remote service, the response message, otherwise null.

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2010 Teleal GmbH, Switzerland. All Rights Reserved.