summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-04-08 11:18:44 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-04-08 11:18:44 +0000
commita34859a1b377dfebaa5c249219b99a8c18030309 (patch)
treed675507850dd2d27c975ad06d39cc985bd3a547a
parentd3cf4bfe8e75366ef61b0ea2779c72917e23be3a (diff)
Latest OASIS API code for componentcontext, Ileagalarg exception added to methods and cast generics simplified, formating and javadoc
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@931881 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--sca-java-2.x/trunk/modules/sca-api/src/main/java/org/oasisopen/sca/ComponentContext.java217
1 files changed, 146 insertions, 71 deletions
diff --git a/sca-java-2.x/trunk/modules/sca-api/src/main/java/org/oasisopen/sca/ComponentContext.java b/sca-java-2.x/trunk/modules/sca-api/src/main/java/org/oasisopen/sca/ComponentContext.java
index 740003fc12..09faf1b15e 100644
--- a/sca-java-2.x/trunk/modules/sca-api/src/main/java/org/oasisopen/sca/ComponentContext.java
+++ b/sca-java-2.x/trunk/modules/sca-api/src/main/java/org/oasisopen/sca/ComponentContext.java
@@ -1,5 +1,5 @@
/*
- * Copyright(C) OASIS(R) 2005,2009. All Rights Reserved.
+ * Copyright(C) OASIS(R) 2005,2010. All Rights Reserved.
* OASIS trademark, IPR and other policies apply.
*/
package org.oasisopen.sca;
@@ -7,113 +7,188 @@ package org.oasisopen.sca;
import java.util.Collection;
/**
- * Interface providing programmatic access to a component's SCA context as an alternative to injection.
- * It provides access to reference and property values for the component and provides a mechanism for
- * obtaining a reference to a service that can be passed to other components.
- * <p/>
- * SCA components obtain an instance of this interface through injection. Non-SCA client code may also
- * obtain an instance through runtime-specific mechanisms.
+ * The ComponentContext interface is used to obtain contextual information
+ * about the SCA component which is executing at the time the API is
+ * invoked.
*
- * @version $Rev$ $Date$
+ * <p>Note: An SCA component can obtain a service reference either through
+ * injection or programmatically through the ComponentContext API. Using
+ * reference injection is the recommended way to access a service, since it
+ * results in code with minimal use of middleware APIs. The ComponentContext
+ * API is provided for use in cases where reference injection is not possible.
*/
public interface ComponentContext {
+
/**
- * Returns the absolute URI of the component within the SCA Domain.
- *
- * @return the absolute URI of the component
+ * Returns the absolute URI of the component within the SCA domain.
+ *
+ * @return the absolute URI of the component within the SCA domain.
*/
String getURI();
/**
- * Cast a type-safe reference to a CallableReference.
- * Converts a type-safe reference to an equivalent CallableReference; if the target refers to a service
- * then a ServiceReference will be returned, if the target refers to a callback then a CallableReference
- * will be returned.
+ * Returns a typed service proxy object for a reference defined by the
+ * current component, where the reference has multiplicity 0..1 or 1..1.
*
- * @param target a reference proxy provided by the SCA runtime
- * @param <B> the Java type of the business interface for the reference
- * @param <R> the type of reference to be returned
- * @return a CallableReference equivalent for the proxy
- * @throws IllegalArgumentException if the supplied instance is not a reference supplied by the SCA runtime
+ * @param <B> the Java type that is implemented by the returned proxy
+ * object.
+ * @param businessInterface the Class object for the Java type that
+ * is implemented by the returned proxy object.
+ * @param referenceName the name of the service reference.
+ * @return a proxy for the reference defined by the current component.
+ * Returns null if the named reference has no target service
+ * configured.
+ * @exception IllegalArgumentException if the reference has multiplicity
+ * greater than one, or the component does not have the reference
+ * named by <code>referenceName</code>, or the interface of the named
+ * reference is not compatible with the interface supplied in
+ * the <code>businessInterface</code> parameter.
*/
- <B, R extends ServiceReference<B>> R cast(B target) throws IllegalArgumentException;
+ <B> B getService(Class<B> businessInterface, String referenceName)
+ throws IllegalArgumentException;
/**
- * Returns a proxy for a reference defined by this component.
- *
- * @param businessInterface the interface that will be used to invoke the service
- * @param referenceName the name of the reference
- * @param <B> the Java type of the business interface for the reference
- * @return an object that implements the business interface
+ * Returns a ServiceReference object for a reference defined by the current
+ * component, where the reference has multiplicity 0..1 or 1..1.
+ *
+ * @param <B> the Java type of the reference that is associated with
+ * the returned object.
+ * @param businessInterface the Class object for the Java type that
+ * is associated with the returned object.
+ * @param referenceName the name of the service reference.
+ * @return a ServiceReference object for a reference defined by the current
+ * component, where the reference has multiplicity 0..1 or 1..1.
+ * Returns null if the named reference has no target service
+ * configured.
+ * @exception IllegalArgumentException if the reference has multiplicity
+ * greater than one, or the component does not have the reference
+ * named by <code>referenceName</code>, or the interface of the named
+ * reference is not compatible with the interface supplied in
+ * the <code>businessInterface</code> parameter.
*/
- <B> B getService(Class<B> businessInterface, String referenceName);
+ <B> ServiceReference<B> getServiceReference(Class<B> businessInterface,
+ String referenceName)
+ throws IllegalArgumentException;
/**
- * Returns a ServiceReference for a reference defined by this component.
+ * Returns a list of typed service proxies for a reference defined by the current
+ * component, where the reference has multiplicity 0..n or 1..n.
*
- * @param businessInterface the interface that will be used to invoke the service
- * @param referenceName the name of the reference
- * @param <B> the Java type of the business interface for the reference
- * @return a ServiceReference for the designated reference
+ * @param <B> the Java type that is implemented by the returned proxy
+ * objects.
+ * @param businessInterface the Class object for the Java type that
+ * is implemented by the returned proxy objects.
+ * @param referenceName the name of the service reference.
+ * @return a collection of proxy objects for the reference, one for each target
+ * service to which the reference is wired, where each proxy object
+ * implements the interface B contained in the
+ * <code>businessInterface</code> parameter. The collection is empty if the
+ * reference is not wired to any target services.
+ * @exception IllegalArgumentException if the reference has multiplicity
+ * greater other than 0..1 or 1..1, or the component does not have the reference
+ * named by <code>referenceName</code>, or the interface of the named
+ * reference is not compatible with the interface supplied in
+ * the <code>businessInterface</code> parameter.
*/
- <B> ServiceReference<B> getServiceReference(Class<B> businessInterface, String referenceName);
+ <B> Collection<B> getServices(Class<B> businessInterface,
+ String referenceName)
+ throws IllegalArgumentException;
/**
- * Returns the value of an SCA property defined by this component.
+ * Returns a list of typed ServiceReference objects for a reference defined by the current
+ * component, where the reference has multiplicity 0..n or 1..n.
*
- * @param type the Java type to be returned for the property
- * @param propertyName the name of the property whose value should be returned
- * @param <B> the Java type of the property
- * @return the property value
+ * @param <B> the Java type that is associated with returned proxy
+ * objects.
+ * @param <B> the Java type of the reference that is associated with
+ * the returned object.
+ * @param referenceName the name of the service reference.
+ * @return a collection of ServiceReference objects for the reference, one for each target
+ * service to which the reference is wired, where each proxy object implements
+ * the interface B contained in the <code>businessInterface</code> parameter.
+ * The collection is empty if the reference is not wired to any target services.
+ * @exception IllegalArgumentException if the reference has multiplicity
+ * greater other than 0..1 or 1..1, or the component does not have the reference
+ * named by <code>referenceName</code>, or the interface of the named
+ * reference is not compatible with the interface supplied in
+ * the <code>businessInterface</code> parameter.
*/
- <B> B getProperty(Class<B> type, String propertyName);
+ <B> Collection<ServiceReference<B>> getServiceReferences(
+ Class<B> businessInterface, String referenceName)
+ throws IllegalArgumentException;
/**
- * Returns a ServiceReference that can be used to invoke this component over the default service.
+ * Returns a ServiceReference that can be used to invoke this component
+ * over the designated service.
*
- * @param businessInterface the interface that will be used to invoke the service
- * @param <B> the Java type of the business interface for the reference
- * @return a ServiceReference that will invoke this component
+ * @param <B> the Java type of the reference that is associated with
+ * the returned object.
+ * @param businessInterface the Class object for the Java type that
+ * is associated with the returned object.
+ * @return a ServiceReference that can be used to invoke this
+ * component over the designated service.
+ * @exception IllegalArgumentException if the component does not have a service
+ * which implements the interface identified by the <code>
+ * businessinterface</code> parameter.
*/
- <B> ServiceReference<B> createSelfReference(Class<B> businessInterface);
+ <B> ServiceReference<B> createSelfReference(Class<B> businessInterface)
+ throws IllegalArgumentException;
/**
- * Returns a ServiceReference that can be used to invoke this component over the designated service.
+ * Returns a ServiceReference that can be used to invoke this component
+ * over the designated service. The <code>serviceName</code> parameter explicitly names
+ * the service with which the returned ServiceReference is associated.
*
- * @param businessInterface the interface that will be used to invoke the service
- * @param serviceName the name of the service to invoke
- * @param <B> the Java type of the business interface for the reference
- * @return a ServiceReference that will invoke this component
+ * @param <B> the Java type of the reference that is associated with
+ * the returned object.
+ * @param businessInterface the Class object for the Java type that
+ * is associated with the returned object.
+ * @param serviceName the service name with which the returned ServiceReference
+ * is associated.
+ * @return a ServiceReference that can be used to invoke this component
+ * over the designated service.
+ * @exception IllegalArgumentException if the component does not have a service
+ * with the name identified by the <code>serviceName</code> parameter, or
+ * if the named service does not implement the interface identified by the
+ * <code>businessinterface</code> parameter.
*/
- <B> ServiceReference<B> createSelfReference(Class<B> businessInterface, String serviceName);
+ <B> ServiceReference<B> createSelfReference(Class<B> businessInterface,
+ String serviceName)
+ throws IllegalArgumentException;
/**
- * Returns the context for the current SCA service request, or null if there is no current request
- * or if the context is unavailable.
+ * Returns the value of an SCA property defined by this component.
*
- * @return the SCA request context; may be null
+ * @param <B> the property type.
+ * @param type the Class object for the property type.
+ * @param propertyName the property name.
+ * @return The value of an SCA property defined by this component, or null if
+ * the property is not configured.
+ * @exception IllegalArgumentException if the component does not have a property
+ * with the name identified by the <code>propertyName</code> parameter, or
+ * if the named property type is not compatible with the <code>type</code>
+ * parameter.
*/
- RequestContext getRequestContext();
-
-
- /* ******************** Contribution for issue TUSCANY-2281 ******************** */
+ <B> B getProperty(Class<B> type, String propertyName)
+ throws IllegalArgumentException;
/**
- * Returns a Collection of typed service proxies for a business interface type and a reference name.
- * @param businessInterface the interface that will be used to invoke the service
- * @param referenceName the name of the reference
- * @param <B> the Java type of the business interface for the reference
- * @return a Collection of objects that implements the business interface
+ * Casts a type-safe reference to a ServiceReference.
+ *
+ * @param <B> the Java type of the reference that is associated with
+ * the returned object.
+ * @param target the type-safe reference proxy that implements interface <B>.
+ * @return a type-safe reference to a ServiceReference.
*/
- <B> Collection<B> getServices(Class<B> businessInterface, String referenceName);
-
+ <B> ServiceReference<B> cast(B target)
+ throws IllegalArgumentException;
/**
- * Returns a Collection of typed service reference for a business interface type and a reference name.
- * @param businessInterface the interface that will be used to invoke the service
- * @param referenceName the name of the reference
- * @param <B> the Java type of the business interface for the reference
- * @return a Collection of objects that implements the business interface
+ * Returns the RequestContext for the current SCA service request.
+ *
+ * @return the RequestContext for the current SCA service request when
+ * invoked during the execution of a component service method or
+ * callback method. Returns null in all other cases.
*/
- <B> Collection<ServiceReference<B>> getServiceReferences(Class<B> businessInterface, String referenceName);
+ RequestContext getRequestContext();
}