Class/Object

org.opalj.av.checking

AnnotatedWith

Related Docs: object AnnotatedWith | package checking

Permalink

case class AnnotatedWith(annotationType: FieldType, elementValuePairs: Seq[ElementValuePair]) extends AnnotationPredicate with Product with Serializable

Tests if an annotation of a class, field, method or method parameter is as specified. The test takes the element values into consideration; if you don't want to take them into consideration use a HasAnnotation predicate.

scala> import org.opalj.br._
scala> import org.opalj.av.checking._
scala> val foo = ObjectType("java/lang/Foo")

scala> val am = AnnotationPredicate("java.lang.Foo",Map("clazz" -> StringValue("")))
am: org.opalj.av.checking.AnnotationPredicate = @java.lang.Foo(clazz="")

scala> am(Annotation(foo,IndexedSeq(ElementValuePair("clazz",StringValue("")))))
res: Boolean = true

scala> am(Annotation(foo,IndexedSeq(ElementValuePair("clazz",StringValue("-+-")))))
res: Boolean = false

scala> val am = DefaultAnnotationPredicate("java.lang.Foo",IndexedSeq.empty)
am: org.opalj.av.checking.DefaultAnnotationPredicate = @java.lang.Foo()

scala> am(Annotation(ObjectType("java/lang/Foo"),IndexedSeq(ElementValuePair("clazz",StringValue(" ")))))
res: Boolean = false
Source
AnnotationPredicate.scala
Linear Supertypes
Serializable, Serializable, Product, scala.Equals, AnnotationPredicate, SourceElementPredicate[ConcreteSourceElement], (ConcreteSourceElement) ⇒ Boolean, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AnnotatedWith
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnnotationPredicate
  7. SourceElementPredicate
  8. Function1
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new AnnotatedWith(annotationType: FieldType, elementValuePairs: Seq[ElementValuePair])

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. def and[T <: ConcreteSourceElement, X <: ConcreteSourceElement with T](right: SourceElementPredicate[T]): SourceElementPredicate[X]

    Permalink
    Definition Classes
    SourceElementPredicate
  5. def andThen[A](g: (Boolean) ⇒ A): (ConcreteSourceElement) ⇒ A

    Permalink
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  6. val annotationType: FieldType

    Permalink
  7. def apply(sourceElement: ConcreteSourceElement): Boolean

    Permalink
    Definition Classes
    AnnotatedWith → Function1
  8. def apply(that: Annotation): Boolean

    Permalink

    Checks if the given annotation is as specified by this predicate.

    Checks if the given annotation is as specified by this predicate. Returns true if the given annotation has the type annotationTypeand if all element value pairs are matched independent of their order.

    Example Scenarios

    • If the predicate's annotation type is A and the other annotation's type is B then the elements will not match.
    • If the predicate defines specific org.opalj.br.ElementValuePairs such as ArrayBuffer(ElementValuePair("target", ClassValue("org.opalj.av.checking.AnnotationPredicate")), ElementValuePair("name", StringValue("Annotation_Predicate")) it will then match annotations where the org.opalj.br.ElementValuePairs have a different order: ArrayBuffer(ElementValuePair("name", StringValue("Annotation_Predicate"), ElementValuePair("target", ClassValue("org.opalj.av.checking.AnnotationPredicate"))) But it will not match if one or both of the two org.opalj.br.ElementValuePairs are missing or there is another org.opalj.br.ElementValuePair not defined by this predicate.
    Definition Classes
    AnnotatedWithAnnotationPredicate
  9. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  10. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  11. def compose[A](g: (A) ⇒ ConcreteSourceElement): (A) ⇒ Boolean

    Permalink
    Definition Classes
    Function1
    Annotations
    @unspecialized()
  12. val elementValuePairs: Seq[ElementValuePair]

    Permalink
  13. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  14. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  15. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  16. final def having[T <: ConcreteSourceElement, X <: ConcreteSourceElement with T](right: SourceElementPredicate[T]): SourceElementPredicate[X]

    Permalink
    Definition Classes
    SourceElementPredicate
  17. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  18. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  19. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  20. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  21. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  22. def toDescription(): String

    Permalink

    Returns a human readable representation of this predicate that is well suited for presenting it in messages related to architectural deviations.

    Returns a human readable representation of this predicate that is well suited for presenting it in messages related to architectural deviations.

    It should not end with a white space and should not use multiple lines. It should not be a complete sentence as this description may be composed with other descriptions.

    Definition Classes
    AnnotatedWithAnnotationPredicateSourceElementPredicate
  23. def toString(): String

    Permalink
    Definition Classes
    Function1 → AnyRef → Any
  24. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  26. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from scala.Equals

Inherited from AnnotationPredicate

Inherited from (ConcreteSourceElement) ⇒ Boolean

Inherited from AnyRef

Inherited from Any

Ungrouped