
com.backendless.async.message.AsyncMessage Maven / Gradle / Ivy
Show all versions of android Show documentation
/*
* ********************************************************************************************************************
*
* BACKENDLESS.COM CONFIDENTIAL
*
* ********************************************************************************************************************
*
* Copyright 2012 BACKENDLESS.COM. All Rights Reserved.
*
* NOTICE: All information contained herein is, and remains the property of Backendless.com and its suppliers,
* if any. The intellectual and technical concepts contained herein are proprietary to Backendless.com and its
* suppliers and may be covered by U.S. and Foreign Patents, patents in process, and are protected by trade secret
* or copyright law. Dissemination of this information or reproduction of this material is strictly forbidden
* unless prior written permission is obtained from Backendless.com.
*
* ********************************************************************************************************************
*/
package com.backendless.async.message;
import com.backendless.async.callback.AsyncCallback;
import com.backendless.exceptions.BackendlessFault;
final public class AsyncMessage implements IAsyncMessage
{
private IHandler handler;
public AsyncMessage( E response, AsyncCallback callback )
{
handler = new ResponseHandler( response, callback );
}
public AsyncMessage( BackendlessFault fault, AsyncCallback callback )
{
handler = new FaultHandler( fault, callback );
}
@Override
public void handleCallback()
{
handler.handle();
}
private static interface IHandler
{
void handle();
}
private static class ResponseHandler implements IHandler
{
private AsyncCallback callback;
private E response;
private ResponseHandler( E response, AsyncCallback callback )
{
this.response = response;
this.callback = callback;
}
@Override
public void handle()
{
if( callback != null )
callback.handleResponse( response );
}
}
private static class FaultHandler implements IHandler
{
private AsyncCallback callback;
private BackendlessFault fault;
private FaultHandler( BackendlessFault fault, AsyncCallback callback )
{
this.fault = fault;
this.callback = callback;
}
@Override
public void handle()
{
if( callback != null )
callback.handleFault( fault );
}
}
}