diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/AllowsPassByReference.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/AllowsPassByReference.java | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/AllowsPassByReference.java b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/AllowsPassByReference.java new file mode 100644 index 0000000000..3350e9413b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta3-RC1/modules/sca-api/src/main/java/org/oasisopen/sca/annotation/AllowsPassByReference.java @@ -0,0 +1,39 @@ +/* + * Copyright(C) OASIS(R) 2005,2010. All Rights Reserved. + * OASIS trademark, IPR and other policies apply. + */ +package org.oasisopen.sca.annotation; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +/** + * The @AllowsPassByReference annotation is used on implementations + * of remotable interfaces to indicate that interactions with the + * service from a client within the same address space are allowed + * to use pass by reference data exchange semantics. + * + * The implementation promises that its by-value semantics will be + * maintained even if the parameters and return values are actually + * passed by-reference. This means that the service will not modify + * any operation input parameter or return value, even after returning + * from the operation. + * + * Either a whole class implementing a remotable service or an individual + * remotable service method implementation can be annotated using the + * {@literal @AllowsPassByReference} annotation. + * + * {@literal @AllowsPassByReference} has no attributes. + */ +@Target({TYPE, METHOD, FIELD, PARAMETER}) +@Retention(RUNTIME) +public @interface AllowsPassByReference { + + boolean value() default true; +} + |