/**
* Copyright 2010 Eric Taix 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 com.bigpupdev.synodroid.action;
import com.bigpupdev.synodroid.server.SynoServer;
import com.bigpupdev.synodroid.protocol.ResponseHandler;
import com.bigpupdev.synodroid.data.Task;
/**
* General interface to execute an action on the Synology's server
*
* @author Eric Taix (eric.taix at gmail dot com)
*/
public interface SynoAction {
/**
* Execute the action on the specific server
*
* @param activityP
* @param serverP
*/
public void execute(ResponseHandler handlerP, SynoServer serverP) throws Exception;
/**
* Return the name of the action
*
* @return
*/
public String getName();
/**
* Return true if a toast must be shown when this action is executed
*
* @return
*/
public boolean isToastable();
/**
* Return true if a toast must be shown when this action is executed
*
* @return
*/
public boolean requireConfirm();
/**
* Return the resource id to use when a toast must be shown
*
* @return
*/
public int getToastId();
/**
* Return the task associated with this task. May return null if no specific task is associated.
*
* @return
*/
public Task getTask();
}