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
- Alphabetic
- By Inheritance
- AnnotatedWith
- Serializable
- Product
- Equals
- AnnotationPredicate
- SourceElementPredicate
- Function1
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new AnnotatedWith(annotationType: FieldType, elementValuePairs: Seq[ElementValuePair])
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def and[T <: ConcreteSourceElement, X <: ConcreteSourceElement with T](right: SourceElementPredicate[T]): SourceElementPredicate[X]
- Definition Classes
- SourceElementPredicate
- def andThen[A](g: (Boolean) => A): (ConcreteSourceElement) => A
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- val annotationType: FieldType
- def apply(sourceElement: ConcreteSourceElement): Boolean
- Definition Classes
- AnnotatedWith → Function1
- def apply(that: Annotation): Boolean
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 typeannotationType
and 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 isB
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
- AnnotatedWith → AnnotationPredicate
- If the predicate's annotation type is
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- def compose[A](g: (A) => ConcreteSourceElement): (A) => Boolean
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- val elementValuePairs: Seq[ElementValuePair]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def having[T <: ConcreteSourceElement, X <: ConcreteSourceElement with T](right: SourceElementPredicate[T]): SourceElementPredicate[X]
- Definition Classes
- SourceElementPredicate
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toDescription(): String
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
- AnnotatedWith → AnnotationPredicate → SourceElementPredicate
- def toString(): String
- Definition Classes
- Function1 → AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated