From e28c4e48adea38a07534581a0548732106707297 Mon Sep 17 00:00:00 2001 From: Luolc Date: Wed, 4 Jan 2017 14:43:04 +0800 Subject: [PATCH] issue #138: fix the orders problem --- .../java/com/f2prateek/dart/common/InjectionTarget.java | 8 +++++++- .../dart/henson/processor/HensonNavigatorGenerator.java | 8 ++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dart-common/src/main/java/com/f2prateek/dart/common/InjectionTarget.java b/dart-common/src/main/java/com/f2prateek/dart/common/InjectionTarget.java index a925fc98..c9930052 100755 --- a/dart-common/src/main/java/com/f2prateek/dart/common/InjectionTarget.java +++ b/dart-common/src/main/java/com/f2prateek/dart/common/InjectionTarget.java @@ -21,7 +21,7 @@ import java.util.Map; import javax.lang.model.type.TypeMirror; -public final class InjectionTarget { +public final class InjectionTarget implements Comparable { public final Map injectionMap = new LinkedHashMap<>(); public final String classPackage; public final String className; @@ -57,4 +57,10 @@ private ExtraInjection getOrCreateExtraBinding(String key) { public String getFqcn() { return classPackage + "." + className; } + + @Override + public int compareTo(InjectionTarget o) { + if (o == null) return 0; + return - this.targetClass.compareTo(o.targetClass); + } } diff --git a/henson-processor/src/main/java/com/f2prateek/dart/henson/processor/HensonNavigatorGenerator.java b/henson-processor/src/main/java/com/f2prateek/dart/henson/processor/HensonNavigatorGenerator.java index 42e06581..1e7d1f1c 100644 --- a/henson-processor/src/main/java/com/f2prateek/dart/henson/processor/HensonNavigatorGenerator.java +++ b/henson-processor/src/main/java/com/f2prateek/dart/henson/processor/HensonNavigatorGenerator.java @@ -10,7 +10,7 @@ import com.squareup.javapoet.TypeName; import com.squareup.javapoet.TypeSpec; import java.util.Collection; -import java.util.HashSet; +import java.util.TreeSet; import javax.lang.model.element.Modifier; /** @@ -78,7 +78,7 @@ private void emitNavigationMethods(TypeSpec.Builder hensonNavigatorTypeBuilder) .addParameter(ClassName.get("android.content", "Context"), "context") .addStatement("this.context = context") .build()); - for (InjectionTarget target: targets) { + for (InjectionTarget target : targets) { emitNavigationMethod(withContextSetStateBuilder, target); } hensonNavigatorTypeBuilder.addType(withContextSetStateBuilder.build()); @@ -150,8 +150,8 @@ private String findCommonPackage(String commonPackageName, String packageName) { } private Collection getTargetsWhereHensonCanGoto(Collection targets) { - Collection canGotoTargets = new HashSet<>(); - for (InjectionTarget injectionTarget: targets) { + Collection canGotoTargets = new TreeSet<>(); + for (InjectionTarget injectionTarget : targets) { if (!injectionTarget.isAbstractTargetClass) { canGotoTargets.add(injectionTarget); }