diff --git a/api/src/main/java/se/emilsjolander/intentbuilder/Optional.java b/api/src/main/java/se/emilsjolander/intentbuilder/Optional.java deleted file mode 100644 index 8165b03..0000000 --- a/api/src/main/java/se/emilsjolander/intentbuilder/Optional.java +++ /dev/null @@ -1,7 +0,0 @@ -package se.emilsjolander.intentbuilder; - -/** - * Created by emilsjolander on 6/14/15. - */ -public @interface Optional { -} diff --git a/compiler/src/main/java/se/emilsjolander/intentbuilder/Processor.java b/compiler/src/main/java/se/emilsjolander/intentbuilder/Processor.java index ead75dd..9e44895 100644 --- a/compiler/src/main/java/se/emilsjolander/intentbuilder/Processor.java +++ b/compiler/src/main/java/se/emilsjolander/intentbuilder/Processor.java @@ -22,6 +22,7 @@ import javax.annotation.processing.ProcessingEnvironment; import javax.annotation.processing.RoundEnvironment; import javax.lang.model.SourceVersion; +import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.Modifier; @@ -162,7 +163,7 @@ private TypeSpec getBuilderSpec(Element annotatedElement) { private void getAnnotatedFields(Element annotatedElement, List required, List optional) { for (Element e : annotatedElement.getEnclosedElements()) { if (e.getAnnotation(Extra.class) != null) { - if (e.getAnnotation(se.emilsjolander.intentbuilder.Optional.class) != null) { + if (hasAnnotation(e, "Nullable")) { optional.add(e); } else { required.add(e); @@ -178,4 +179,13 @@ private void getAnnotatedFields(Element annotatedElement, List required } } + private boolean hasAnnotation(Element e, String name) { + for (AnnotationMirror annotation : e.getAnnotationMirrors()) { + if (annotation.getAnnotationType().asElement().getSimpleName().toString().equals(name)) { + return true; + } + } + return false; + } + } \ No newline at end of file diff --git a/sample/src/main/java/se/emilsjolander/intentbuilder/sample/DetailActivity.java b/sample/src/main/java/se/emilsjolander/intentbuilder/sample/DetailActivity.java index 2860796..6fcd6f2 100644 --- a/sample/src/main/java/se/emilsjolander/intentbuilder/sample/DetailActivity.java +++ b/sample/src/main/java/se/emilsjolander/intentbuilder/sample/DetailActivity.java @@ -1,12 +1,12 @@ package se.emilsjolander.intentbuilder.sample; import android.os.Bundle; +import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.widget.TextView; import se.emilsjolander.intentbuilder.Extra; import se.emilsjolander.intentbuilder.IntentBuilder; -import se.emilsjolander.intentbuilder.Optional; @IntentBuilder public class DetailActivity extends AppCompatActivity { @@ -17,10 +17,10 @@ public class DetailActivity extends AppCompatActivity { @Extra String two; - @Extra @Optional + @Extra @Nullable String three; - @Extra @Optional + @Extra @Nullable String four; @Override diff --git a/sample/src/main/java/se/emilsjolander/intentbuilder/sample/MySubClass.java b/sample/src/main/java/se/emilsjolander/intentbuilder/sample/MySubClass.java index 8276657..822c9fa 100644 --- a/sample/src/main/java/se/emilsjolander/intentbuilder/sample/MySubClass.java +++ b/sample/src/main/java/se/emilsjolander/intentbuilder/sample/MySubClass.java @@ -1,20 +1,18 @@ package se.emilsjolander.intentbuilder.sample; import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.widget.TextView; +import android.support.annotation.Nullable; import se.emilsjolander.intentbuilder.Extra; import se.emilsjolander.intentbuilder.IntentBuilder; -import se.emilsjolander.intentbuilder.Optional; @IntentBuilder public class MySubClass extends MySuperClass { - @Extra @Optional + @Extra @Nullable String three; - @Extra @Optional + @Extra @Nullable String four; @Override diff --git a/sample/src/main/java/se/emilsjolander/intentbuilder/sample/MySuperClass.java b/sample/src/main/java/se/emilsjolander/intentbuilder/sample/MySuperClass.java index f3c1318..cad999b 100644 --- a/sample/src/main/java/se/emilsjolander/intentbuilder/sample/MySuperClass.java +++ b/sample/src/main/java/se/emilsjolander/intentbuilder/sample/MySuperClass.java @@ -2,11 +2,8 @@ import android.os.Bundle; import android.support.v7.app.AppCompatActivity; -import android.widget.TextView; import se.emilsjolander.intentbuilder.Extra; -import se.emilsjolander.intentbuilder.IntentBuilder; -import se.emilsjolander.intentbuilder.Optional; public class MySuperClass extends AppCompatActivity {