blob: 4ddeef4cbe7889b267645144f887173a9d835166 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
* Rafael Oliveira Nóbrega <rafael.oliveira@gmail.com> - bug 223738
*******************************************************************************/
package org.eclipse.pde.internal.ds.core;
/**
* Represents the service information to be used when a component configuration
* is to be registered as a service.
*
* @since 3.4
* @see IDSComponent
* @see IDSObject
*/
public interface IDSService extends IDSObject {
/**
* Sets the attribute servicefactory
*
* This attribute controls whether the service uses the ServiceFactory
* concept of the OSGi Framework.
*
* The default value is false.
*
* If servicefactory is set to true, a different component configuration is
* created, activated and its component instance returned as the service
* object for each distinct bundle that requests the service.Each of these
* component configurations has the same component properties.Otherwise, the
* same component instance from the single component configuration is
* returned as the service object for all bundles that request the service.
*
* The servicefactory attribute must not be true if the component is a
* factory component or an immediate component. This is because SCR is not
* free to create component configurations as necessary to support
* servicefactory. A component description is ill-formed if it specifies
* that the component is a factory component or an immediate component and
* servicefactory is set to true.
*
* @param bool
* new boolean value of attribute servicefactory
*/
public void setServiceFactory(boolean bool);
/**
* Returns the value of attribute servicefactory
*
* @return boolean containing the value of attribute servicefactory
*/
public boolean getServiceFactory();
/**
* Return all Service's interfaces
*
* @return IDSProvide's array containing all provide elements
*/
public IDSProvide[] getProvidedServices();
/**
* Adds a provide element with information about a service`s interface
*
* @param provide IDSProvide object
*/
public void addProvidedService(IDSProvide provide);
/**
* Removes a provide element
*
* @param provide IDSProvide object
*/
public void removeProvidedService(IDSProvide provide);
}