diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2010-04-08 11:18:44 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2010-04-08 11:18:44 +0000 |
commit | a34859a1b377dfebaa5c249219b99a8c18030309 (patch) | |
tree | d675507850dd2d27c975ad06d39cc985bd3a547a /sca-java-2.x/trunk/modules/sca-api/src | |
parent | d3cf4bfe8e75366ef61b0ea2779c72917e23be3a (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
Diffstat (limited to 'sca-java-2.x/trunk/modules/sca-api/src')
-rw-r--r-- | sca-java-2.x/trunk/modules/sca-api/src/main/java/org/oasisopen/sca/ComponentContext.java | 217 |
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(); } |