Skip to content

Commit 02afec9

Browse files
committed
Make every builder abstract. Add a mandatory abstract build() method in FragmentBuilder
1 parent ccf9742 commit 02afec9

6 files changed

Lines changed: 35 additions & 14 deletions

File tree

‎AndroidAnnotations/androidannotations-api/src/main/java/org/androidannotations/api/builder/ActivityIntentBuilder.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import android.content.Context;
2020
import android.content.Intent;
2121

22-
public class ActivityIntentBuilder<I extends ActivityIntentBuilder<I>> extends IntentBuilder<I> {
22+
public abstract class ActivityIntentBuilder<I extends ActivityIntentBuilder<I>> extends IntentBuilder<I> {
2323

2424
public ActivityIntentBuilder(Context context, Class<?> clazz) {
2525
super(context, clazz);

‎AndroidAnnotations/androidannotations-api/src/main/java/org/androidannotations/api/builder/Builder.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@
1515
*/
1616
package org.androidannotations.api.builder;
1717

18-
public class Builder {
18+
public abstract class Builder {
1919
}

‎AndroidAnnotations/androidannotations-api/src/main/java/org/androidannotations/api/builder/FragmentBuilder.java‎

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,24 @@
1515
*/
1616
package org.androidannotations.api.builder;
1717

18+
import java.io.Serializable;
19+
import java.util.ArrayList;
20+
1821
import android.os.Bundle;
1922
import android.os.Parcelable;
2023
import android.util.SparseArray;
2124

22-
import java.io.Serializable;
23-
import java.util.ArrayList;
24-
2525
@SuppressWarnings("unchecked")
26-
public class FragmentBuilder<I extends FragmentBuilder<I>> extends Builder {
26+
public abstract class FragmentBuilder<I extends FragmentBuilder<I, F>, F> extends Builder {
2727

2828
protected Bundle args;
2929

3030
public FragmentBuilder() {
3131
args = new Bundle();
3232
}
3333

34+
public abstract F build();
35+
3436
public I arg(Bundle map) {
3537
args.putAll(map);
3638
return (I) this;

‎AndroidAnnotations/androidannotations-api/src/main/java/org/androidannotations/api/builder/IntentBuilder.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import android.os.Parcelable;
2525

2626
@SuppressWarnings("unchecked")
27-
public class IntentBuilder<I extends IntentBuilder<I>> extends Builder {
27+
public abstract class IntentBuilder<I extends IntentBuilder<I>> extends Builder {
2828

2929
protected final Context context;
3030
protected final Intent intent;

‎AndroidAnnotations/androidannotations-api/src/main/java/org/androidannotations/api/builder/ServiceIntentBuilder.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import android.content.Context;
2020
import android.content.Intent;
2121

22-
public class ServiceIntentBuilder<I extends ServiceIntentBuilder<I>> extends IntentBuilder<I> {
22+
public abstract class ServiceIntentBuilder<I extends ServiceIntentBuilder<I>> extends IntentBuilder<I> {
2323

2424
public ServiceIntentBuilder(Context context, Class<?> clazz) {
2525
super(context, clazz);

‎AndroidAnnotations/androidannotations/src/main/java/org/androidannotations/holder/EFragmentHolder.java‎

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,34 @@
1515
*/
1616
package org.androidannotations.holder;
1717

18-
import com.sun.codemodel.*;
18+
import static com.sun.codemodel.JExpr.FALSE;
19+
import static com.sun.codemodel.JExpr.TRUE;
20+
import static com.sun.codemodel.JExpr._new;
21+
import static com.sun.codemodel.JExpr._null;
22+
import static com.sun.codemodel.JExpr._super;
23+
import static com.sun.codemodel.JExpr.invoke;
24+
import static com.sun.codemodel.JExpr.ref;
25+
import static com.sun.codemodel.JMod.PRIVATE;
26+
import static com.sun.codemodel.JMod.PUBLIC;
27+
import static com.sun.codemodel.JMod.STATIC;
28+
29+
import javax.lang.model.element.TypeElement;
30+
1931
import org.androidannotations.helper.ActionBarSherlockHelper;
2032
import org.androidannotations.helper.AnnotationHelper;
2133
import org.androidannotations.helper.HoloEverywhereHelper;
2234
import org.androidannotations.process.ProcessHolder;
2335

24-
import javax.lang.model.element.TypeElement;
25-
26-
import static com.sun.codemodel.JExpr.*;
27-
import static com.sun.codemodel.JMod.*;
36+
import com.sun.codemodel.JBlock;
37+
import com.sun.codemodel.JClass;
38+
import com.sun.codemodel.JClassAlreadyExistsException;
39+
import com.sun.codemodel.JDefinedClass;
40+
import com.sun.codemodel.JExpr;
41+
import com.sun.codemodel.JFieldRef;
42+
import com.sun.codemodel.JFieldVar;
43+
import com.sun.codemodel.JMethod;
44+
import com.sun.codemodel.JMod;
45+
import com.sun.codemodel.JVar;
2846

2947
public class EFragmentHolder extends EComponentWithViewSupportHolder implements HasInstanceState, HasOptionsMenu, HasOnActivityResult, HasReceiverRegistration {
3048

@@ -108,7 +126,7 @@ private void setFindViewById() {
108126
private void setFragmentBuilder() throws JClassAlreadyExistsException {
109127
fragmentBuilderClass = generatedClass._class(PUBLIC | STATIC, "FragmentBuilder_");
110128
JClass superClass = refClass(org.androidannotations.api.builder.FragmentBuilder.class);
111-
superClass = superClass.narrow(fragmentBuilderClass);
129+
superClass = superClass.narrow(fragmentBuilderClass, getGeneratedClass());
112130
fragmentBuilderClass._extends(superClass);
113131
fragmentArgumentsBuilderField = ref("args");
114132
setFragmentBuilderBuild();
@@ -117,6 +135,7 @@ private void setFragmentBuilder() throws JClassAlreadyExistsException {
117135

118136
private void setFragmentBuilderBuild() {
119137
JMethod method = fragmentBuilderClass.method(PUBLIC, generatedClass._extends(), "build");
138+
method.annotate(Override.class);
120139
JBlock body = method.body();
121140

122141
JVar fragment = body.decl(generatedClass, "fragment_", _new(generatedClass));

0 commit comments

Comments
 (0)