All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.objectweb.fractal.task.deployment.lib.AbstractRequireBindingProviderTask Maven / Gradle / Ivy

The newest version!
/*====================================================================

 ObjectWeb Deployment Framework
 Copyright (C) 2004-2006 INRIA - USTL - LIFL - GOAL
 Copyright (C) 2006-2007 STMicroelectronics

 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or any later version.

 This library 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
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
 USA

 Initial developer(s): Philippe Merle, Frederic Briclet.
 Contributor(s): Eric Bruneton.

 ====================================================================
 $Id: AbstractRequireBindingProviderTask.java 3624 2007-07-24 14:50:38Z apace $
 ====================================================================*/

package org.objectweb.fractal.task.deployment.lib;

import org.objectweb.fractal.task.core.AbstractTask;
import org.objectweb.fractal.task.core.TaskMap;
import org.objectweb.fractal.task.deployment.api.BindingProviderTask;
import org.objectweb.fractal.task.deployment.api.RequireBindingProviderTask;

/**
 * AbstractRequireBindingProviderTask implements RequireBindingProviderTask.
 * 
 * Subclasses must implement: - public void execute(Object context) throws
 * Exception; - public Object getResult(); - public void setResult(Object
 * result);
 * 
 * @author Philippe Merle
 * @author Frederic Briclet
 * 
 * @version 0.2
 */

public abstract class AbstractRequireBindingProviderTask extends AbstractTask
		implements RequireBindingProviderTask {
	// ==================================================================
	//
	// Internal state.
	//
	// ==================================================================

	/** Reference to the component binding provider task. */
	private TaskMap.TaskHole bindingProviderTask_;

	// ==================================================================
	//
	// Constructor.
	//
	// ==================================================================

	/** The default constructor. */
	public AbstractRequireBindingProviderTask() {
		// Call the default AbstractTask constructor.
		super();
	}

	// ==================================================================
	//
	// Public methods for
	// org.objectweb.deployment.scheduling.component.api.RequireBindingProviderTask
	//
	// ==================================================================

	/**
	 * Return the component binding provider task.
	 * 
	 * @return The component binding provider task.
	 */
	public BindingProviderTask getBindingProviderTask() {
		return (bindingProviderTask_) == null
        ? null
        : (BindingProviderTask) bindingProviderTask_.getTask();
	}

	/**
	 * Set the component binding provider task.
	 * 
	 * @param task -
	 *            The component binding provider task.
	 */
	public void setBindingProviderTask(TaskMap.TaskHole task) {
		if (bindingProviderTask_ != null)
			removePreviousTask(bindingProviderTask_);

		bindingProviderTask_ = task;

		if (bindingProviderTask_ != null)
			addPreviousTask(bindingProviderTask_);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy