summaryrefslogtreecommitdiffstats
path: root/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java')
-rw-r--r--tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java89
1 files changed, 0 insertions, 89 deletions
diff --git a/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java b/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java
deleted file mode 100644
index 85d72b4b0d..0000000000
--- a/tags/java-M1-20060518/java/sca/containers/container.java/src/main/java/org/apache/tuscany/container/java/invocation/ScopedJavaComponentInvoker.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.tuscany.container.java.invocation;
-
-import org.apache.tuscany.core.context.QualifiedName;
-import org.apache.tuscany.core.context.ScopeContext;
-import org.apache.tuscany.core.context.TargetException;
-
-import java.lang.reflect.Method;
-
-/**
- * Uses a scope container to resolve an implementation instance based on the current thread context
- *
- * @version $Rev$ $Date$
- */
-public class ScopedJavaComponentInvoker extends AbstractJavaComponentInvoker {
-
- private ScopeContext container;
-
- private QualifiedName name;
-
- private Object target;
-
- public boolean cacheable;
-
-
- /**
- * Creates a new invoker
- *
- * @param serviceName the name of the component/service pair to invoke
- * @param operation the operation the invoker is associated with
- * @param scopeContext the scope context the component is resolved in
- * @param cacheable Sets whether the target service instance may be cached by the invoker. This is a possible optimization
- * when a wire is configured for a "down-scope" reference, i.e. a reference from a source of a shorter
- * lifetime to a source of greater lifetime.
- */
- public ScopedJavaComponentInvoker(QualifiedName serviceName, Method operation, ScopeContext scopeContext, boolean cacheable) {
- super(operation);
- assert (serviceName != null) : "No service name specified";
- assert (scopeContext != null) : "No scope scopeContext specified";
- name = serviceName;
- this.container = scopeContext;
- this.cacheable = cacheable;
- }
-
- /**
- * Returns whether the target is cacheable.
- */
- public boolean isCacheable() {
- return cacheable;
- }
-
- /**
- * Resolves the target service instance or returns a cached one
- */
- protected Object getInstance() throws TargetException {
- if (!cacheable) {
- return container.getInstance(name);
- } else {
- if (target == null) {
- target = container.getInstance(name);
- }
- return target;
- }
- }
-
- public Object clone() throws CloneNotSupportedException {
- ScopedJavaComponentInvoker invoker = (ScopedJavaComponentInvoker) super.clone();
- invoker.target = null;
- invoker.cacheable = this.cacheable;
- invoker.container = this.container;
- invoker.name = this.name;
- return invoker;
- }
-}