diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EActivityHolder.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EActivityHolder.java index 7d2c5c8e05..a11cf6ed03 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EActivityHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EActivityHolder.java @@ -73,7 +73,7 @@ public class EActivityHolder extends EComponentWithViewSupportHolder implements private JDefinedClass intentBuilderClass; private InstanceStateHolder instanceStateHolder; private OnActivityResultHolder onActivityResultHolder; - private ReceiverRegistrationHolder receiverRegistrationHolder; + private ReceiverRegistrationHolder receiverRegistrationHolder; private RoboGuiceHolder roboGuiceHolder; private JMethod injectExtrasMethod; private JBlock injectExtrasBlock; @@ -101,7 +101,7 @@ public EActivityHolder(ProcessHolder processHolder, TypeElement annotatedElement super(processHolder, annotatedElement); instanceStateHolder = new InstanceStateHolder(this); onActivityResultHolder = new OnActivityResultHolder(this); - receiverRegistrationHolder = new ReceiverRegistrationHolder(this); + receiverRegistrationHolder = new ReceiverRegistrationHolder(this); setSetContentView(); intentBuilder = new ActivityIntentBuilder(this, androidManifest); intentBuilder.build(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EFragmentHolder.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EFragmentHolder.java index 934101a199..91dd4c412f 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EFragmentHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EFragmentHolder.java @@ -65,7 +65,7 @@ public class EFragmentHolder extends EComponentWithViewSupportHolder implements private JVar injectBundleArgs; private InstanceStateHolder instanceStateHolder; private OnActivityResultHolder onActivityResultHolder; - private ReceiverRegistrationHolder receiverRegistrationHolder; + private ReceiverRegistrationHolder receiverRegistrationHolder; private JBlock onCreateOptionsMenuMethodBody; private JVar onCreateOptionsMenuMenuInflaterVar; private JVar onCreateOptionsMenuMenuParam; @@ -85,7 +85,7 @@ public EFragmentHolder(ProcessHolder processHolder, TypeElement annotatedElement super(processHolder, annotatedElement); instanceStateHolder = new InstanceStateHolder(this); onActivityResultHolder = new OnActivityResultHolder(this); - receiverRegistrationHolder = new ReceiverRegistrationHolder(this); + receiverRegistrationHolder = new ReceiverRegistrationHolder(this); setOnCreate(); setOnViewCreated(); setFragmentBuilder(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EServiceHolder.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EServiceHolder.java index f129e7b659..89eeeb2eea 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EServiceHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EServiceHolder.java @@ -39,12 +39,12 @@ public class EServiceHolder extends EComponentHolder implements HasIntentBuilder private ServiceIntentBuilder intentBuilder; private JDefinedClass intentBuilderClass; - private ReceiverRegistrationHolder receiverRegistrationHolder; + private ReceiverRegistrationHolder receiverRegistrationHolder; private JBlock onDestroyBeforeSuperBlock; public EServiceHolder(ProcessHolder processHolder, TypeElement annotatedElement, AndroidManifest androidManifest) throws Exception { super(processHolder, annotatedElement); - receiverRegistrationHolder = new ReceiverRegistrationHolder(this); + receiverRegistrationHolder = new ReceiverRegistrationHolder(this); intentBuilder = new ServiceIntentBuilder(this, androidManifest); intentBuilder.build(); } diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/FoundViewHolder.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/FoundViewHolder.java index 1e1084968e..2064b52190 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/FoundViewHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/FoundViewHolder.java @@ -22,19 +22,18 @@ import com.sun.codemodel.JClass; import com.sun.codemodel.JExpression; -public class FoundViewHolder { +public class FoundViewHolder extends GeneratedClassHolderDecorator { - private GeneratedClassHolder holder; private JClass viewClass; private JExpression view; private JBlock ifNotNullBlock; private boolean ifNotNullCreated = false; public FoundViewHolder(GeneratedClassHolder holder, JClass viewClass, JExpression view, JBlock block) { - this.holder = holder; + super(holder); this.viewClass = viewClass; this.view = view; - this.ifNotNullBlock = block; + ifNotNullBlock = block; } public JExpression getView() { diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/GeneratedClassHolderDecorator.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/GeneratedClassHolderDecorator.java new file mode 100644 index 0000000000..fc8cd38457 --- /dev/null +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/GeneratedClassHolderDecorator.java @@ -0,0 +1,26 @@ +/** + * Copyright (C) 2010-2015 eBusiness Information, Excilys 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.androidannotations.holder; + +public class GeneratedClassHolderDecorator { + + protected T holder; + + public GeneratedClassHolderDecorator(T holder) { + this.holder = holder; + } + +} diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/OnSeekBarChangeListenerHolder.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/OnSeekBarChangeListenerHolder.java index ea5f6b395b..12726fd79c 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/OnSeekBarChangeListenerHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/OnSeekBarChangeListenerHolder.java @@ -21,9 +21,8 @@ import com.sun.codemodel.JMod; import com.sun.codemodel.JVar; -public class OnSeekBarChangeListenerHolder { +public class OnSeekBarChangeListenerHolder extends GeneratedClassHolderDecorator { - private EComponentWithViewSupportHolder holder; private JDefinedClass listenerClass; private JBlock onProgressChangedBody; private JVar onProgressChangedSeekBarParam; @@ -35,8 +34,8 @@ public class OnSeekBarChangeListenerHolder { private JVar onStopTrackingTouchSeekBarParam; public OnSeekBarChangeListenerHolder(EComponentWithViewSupportHolder holder, JDefinedClass onSeekbarChangeListenerClass) { - this.holder = holder; - this.listenerClass = onSeekbarChangeListenerClass; + super(holder); + listenerClass = onSeekbarChangeListenerClass; createOnProgressChanged(); createOnStartTrackingTouch(); createOnStopTrackingTouch(); diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/ReceiverRegistrationHolder.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/ReceiverRegistrationHolder.java index fb867cd55e..e4d57f9039 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/ReceiverRegistrationHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/ReceiverRegistrationHolder.java @@ -34,14 +34,13 @@ import com.sun.codemodel.JExpression; import com.sun.codemodel.JFieldVar; -public class ReceiverRegistrationHolder { +public class ReceiverRegistrationHolder extends GeneratedClassHolderDecorator { - private T holder; private Map intentFilterFields = new HashMap(); private IllegalStateException illegalStateException = new IllegalStateException("This shouldn't happen unless the validation is bad"); - public ReceiverRegistrationHolder(T holder) { - this.holder = holder; + public ReceiverRegistrationHolder(EComponentHolder holder) { + super(holder); } public JFieldVar getIntentFilterField(IntentFilterData intentFilterData) { @@ -58,7 +57,7 @@ private JFieldVar createIntentFilterField(IntentFilterData intentFilterData) { JExpression newIntentFilterExpr = _new(classes().INTENT_FILTER); JFieldVar intentFilterField = getGeneratedClass().field(PRIVATE | FINAL, classes().INTENT_FILTER, intentFilterName, newIntentFilterExpr); - JBlock intentFilterTarget = holder.getIntentFilterInitializationBlock(intentFilterData); + JBlock intentFilterTarget = ((HasReceiverRegistration) holder).getIntentFilterInitializationBlock(intentFilterData); for (String action : intentFilterData.getActionSet()) { intentFilterTarget.invoke(intentFilterField, "addAction").arg(action); } diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/RoboGuiceHolder.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/RoboGuiceHolder.java index cd6c96ebfd..9ee3c3dc39 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/RoboGuiceHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/RoboGuiceHolder.java @@ -20,9 +20,8 @@ import com.sun.codemodel.JMethod; import com.sun.codemodel.JVar; -public class RoboGuiceHolder { +public class RoboGuiceHolder extends GeneratedClassHolderDecorator { - private EActivityHolder holder; // TODO access for these fields should be refactored @@ -44,7 +43,7 @@ public class RoboGuiceHolder { protected JBlock onContentChangedAfterSuperBlock; public RoboGuiceHolder(EActivityHolder holder) { - this.holder = holder; + super(holder); } public JFieldVar getEventManagerField() { diff --git a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/TextWatcherHolder.java b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/TextWatcherHolder.java index c8c63432fe..e4562dd6ed 100644 --- a/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/TextWatcherHolder.java +++ b/AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/TextWatcherHolder.java @@ -22,9 +22,8 @@ import com.sun.codemodel.JPrimitiveType; import com.sun.codemodel.JVar; -public class TextWatcherHolder { +public class TextWatcherHolder extends GeneratedClassHolderDecorator { - private EComponentWithViewSupportHolder holder; private JVar textViewVariable; private JDefinedClass listenerClass; private JBlock beforeTextChangedBody; @@ -41,9 +40,9 @@ public class TextWatcherHolder { private JVar afterTextChangedEditableParam; public TextWatcherHolder(EComponentWithViewSupportHolder holder, JVar viewVariable, JDefinedClass onTextChangeListenerClass) { - this.holder = holder; - this.textViewVariable = viewVariable; - this.listenerClass = onTextChangeListenerClass; + super(holder); + textViewVariable = viewVariable; + listenerClass = onTextChangeListenerClass; createBeforeTextChanged(); createOnTextChanged(); createAfterTextChanged();