diff options
author | Igor Murashkin <iam@google.com> | 2016-03-24 14:26:27 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2016-03-24 14:26:34 -0700 |
commit | 74d7e4ee09ca3eff1c80df535f398b4561043c1f (patch) | |
tree | 70d5afae0bd672bba9654e64853f73348c8dfe0a /tck/org/atinject/tck/auto/accessories/SpareTire.java | |
parent | ab59cd2330b788a4e2b2dbcd9701dd2c3a49955f (diff) | |
parent | 120d55ed85ca460ab29241916bf23743f6bc65da (diff) | |
download | platform_external_jsr330-74d7e4ee09ca3eff1c80df535f398b4561043c1f.tar.gz platform_external_jsr330-74d7e4ee09ca3eff1c80df535f398b4561043c1f.tar.bz2 platform_external_jsr330-74d7e4ee09ca3eff1c80df535f398b4561043c1f.zip |
Merge remote-tracking branch 'goog/master' into nyc-dev
Bug: 27552463
Change-Id: Ib32111bd227168159f9255ffcb46ece02a8d9b64
Diffstat (limited to 'tck/org/atinject/tck/auto/accessories/SpareTire.java')
-rw-r--r-- | tck/org/atinject/tck/auto/accessories/SpareTire.java | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/tck/org/atinject/tck/auto/accessories/SpareTire.java b/tck/org/atinject/tck/auto/accessories/SpareTire.java new file mode 100644 index 0000000..5dd6211 --- /dev/null +++ b/tck/org/atinject/tck/auto/accessories/SpareTire.java @@ -0,0 +1,122 @@ +/* + * Copyright (C) 2009 The JSR-330 Expert Group + * + * 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.atinject.tck.auto.accessories; + +import org.atinject.tck.auto.FuelTank; +import org.atinject.tck.auto.Tire; + +import javax.inject.Inject; + +public class SpareTire extends Tire { + + FuelTank constructorInjection = NEVER_INJECTED; + @Inject FuelTank fieldInjection = NEVER_INJECTED; + FuelTank methodInjection = NEVER_INJECTED; + @Inject static FuelTank staticFieldInjection = NEVER_INJECTED; + static FuelTank staticMethodInjection = NEVER_INJECTED; + + @Inject public SpareTire(FuelTank forSupertype, FuelTank forSubtype) { + super(forSupertype); + this.constructorInjection = forSubtype; + } + + @Inject void subtypeMethodInjection(FuelTank methodInjection) { + if (!hasSpareTireBeenFieldInjected()) { + methodInjectedBeforeFields = true; + } + this.methodInjection = methodInjection; + } + + @Inject static void subtypeStaticMethodInjection(FuelTank methodInjection) { + if (!hasBeenStaticFieldInjected()) { + staticMethodInjectedBeforeStaticFields = true; + } + staticMethodInjection = methodInjection; + } + + @Inject private void injectPrivateMethod() { + if (subPrivateMethodInjected) { + similarPrivateMethodInjectedTwice = true; + } + subPrivateMethodInjected = true; + } + + @Inject void injectPackagePrivateMethod() { + if (subPackagePrivateMethodInjected) { + similarPackagePrivateMethodInjectedTwice = true; + } + subPackagePrivateMethodInjected = true; + } + + @Inject protected void injectProtectedMethod() { + if (subProtectedMethodInjected) { + overriddenProtectedMethodInjectedTwice = true; + } + subProtectedMethodInjected = true; + } + + @Inject public void injectPublicMethod() { + if (subPublicMethodInjected) { + overriddenPublicMethodInjectedTwice = true; + } + subPublicMethodInjected = true; + } + + private void injectPrivateMethodForOverride() { + superPrivateMethodForOverrideInjected = true; + } + + void injectPackagePrivateMethodForOverride() { + superPackagePrivateMethodForOverrideInjected = true; + } + + protected void injectProtectedMethodForOverride() { + protectedMethodForOverrideInjected = true; + } + + public void injectPublicMethodForOverride() { + publicMethodForOverrideInjected = true; + } + + public boolean hasSpareTireBeenFieldInjected() { + return fieldInjection != NEVER_INJECTED; + } + + public boolean hasSpareTireBeenMethodInjected() { + return methodInjection != NEVER_INJECTED; + } + + public static boolean hasBeenStaticFieldInjected() { + return staticFieldInjection != NEVER_INJECTED; + } + + public static boolean hasBeenStaticMethodInjected() { + return staticMethodInjection != NEVER_INJECTED; + } + + public boolean packagePrivateMethod2Injected; + + @Inject void injectPackagePrivateMethod2() { + packagePrivateMethod2Injected = true; + } + + public boolean packagePrivateMethod3Injected; + + void injectPackagePrivateMethod3() { + packagePrivateMethod3Injected = true; + } +} |