diff options
Diffstat (limited to 'sampleUses/src/main/java/edu')
5 files changed, 92 insertions, 0 deletions
diff --git a/sampleUses/src/main/java/edu/umd/cs/findbugs/DottedClassName.java b/sampleUses/src/main/java/edu/umd/cs/findbugs/DottedClassName.java new file mode 100644 index 0000000..f8779d0 --- /dev/null +++ b/sampleUses/src/main/java/edu/umd/cs/findbugs/DottedClassName.java @@ -0,0 +1,14 @@ +package edu.umd.cs.findbugs; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.annotation.meta.TypeQualifierNickname; +import javax.annotation.meta.When; + +@Documented +@SlashedClassName(when=When.NEVER) +@TypeQualifierNickname +@Retention(RetentionPolicy.RUNTIME) +public @interface DottedClassName { }
\ No newline at end of file diff --git a/sampleUses/src/main/java/edu/umd/cs/findbugs/SlashedClassName.java b/sampleUses/src/main/java/edu/umd/cs/findbugs/SlashedClassName.java new file mode 100644 index 0000000..cc06384 --- /dev/null +++ b/sampleUses/src/main/java/edu/umd/cs/findbugs/SlashedClassName.java @@ -0,0 +1,15 @@ +package edu.umd.cs.findbugs; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.annotation.meta.TypeQualifier; +import javax.annotation.meta.When; + +@Documented +@TypeQualifier(applicableTo=CharSequence.class) +@Retention(RetentionPolicy.RUNTIME) +public @interface SlashedClassName { + When when() default When.ALWAYS; +} diff --git a/sampleUses/src/main/java/edu/umd/cs/findbugs/examples/ParametersAreSlashedByDefault.java b/sampleUses/src/main/java/edu/umd/cs/findbugs/examples/ParametersAreSlashedByDefault.java new file mode 100644 index 0000000..28e30e8 --- /dev/null +++ b/sampleUses/src/main/java/edu/umd/cs/findbugs/examples/ParametersAreSlashedByDefault.java @@ -0,0 +1,13 @@ +package edu.umd.cs.findbugs.examples; + +import java.lang.annotation.ElementType; + +import javax.annotation.meta.TypeQualifierDefault; + +import edu.umd.cs.findbugs.SlashedClassName; + +@SlashedClassName +@TypeQualifierDefault(ElementType.PARAMETER) +public @interface ParametersAreSlashedByDefault { + +} diff --git a/sampleUses/src/main/java/edu/umd/cs/findbugs/examples/Test.java b/sampleUses/src/main/java/edu/umd/cs/findbugs/examples/Test.java new file mode 100644 index 0000000..1246131 --- /dev/null +++ b/sampleUses/src/main/java/edu/umd/cs/findbugs/examples/Test.java @@ -0,0 +1,31 @@ +package edu.umd.cs.findbugs.examples; + +import javax.annotation.meta.When; + +import edu.umd.cs.findbugs.DottedClassName; +import edu.umd.cs.findbugs.SlashedClassName; + +public class Test { + + + public void foo(@SlashedClassName String foo) {} + + public void foo2(@DottedClassName String foo) { + foo(foo); // should get warning here + } + + public void foo3(String foo) { + foo(foo); + } + public void foo4(@DottedClassName String foo) { + foo3(foo); + } + + public void foo5(@SlashedClassName(when=When.MAYBE) String foo) { + foo(foo); + } + public void foo6(@SlashedClassName(when=When.UNKNOWN) String foo) { + foo(foo); + } +} + diff --git a/sampleUses/src/main/java/edu/umd/cs/findbugs/examples/TestDefaults.java b/sampleUses/src/main/java/edu/umd/cs/findbugs/examples/TestDefaults.java new file mode 100644 index 0000000..c6e8013 --- /dev/null +++ b/sampleUses/src/main/java/edu/umd/cs/findbugs/examples/TestDefaults.java @@ -0,0 +1,19 @@ +package edu.umd.cs.findbugs.examples; + +import javax.annotation.meta.When; + +import edu.umd.cs.findbugs.DottedClassName; +import edu.umd.cs.findbugs.SlashedClassName; + +@ParametersAreSlashedByDefault +public class TestDefaults { + public void foo(String c) {} + + public void foo2(@DottedClassName String c) { + foo(c); + } + + public void foo3(@SlashedClassName(when=When.UNKNOWN) String c) { + foo(c); + } +} |