class MicroPatterns extends FeatureQuery
Counts which kinds of micro patterns are actually available.
- Alphabetic
- By Inheritance
- MicroPatterns
- FeatureQuery
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new MicroPatterns()(implicit hermes: HermesConfig)
Type Members
- class AnalysisDomain[S] extends CorrelationalDomain with DefaultHandlingOfMethodResults with IgnoreSynchronization with ThrowAllPotentialExceptionsConfiguration with DefaultTypeLevelFloatValues with DefaultTypeLevelDoubleValues with TypeLevelFieldAccessInstructions with TypeLevelInvokeInstructions with TypeLevelDynamicLoads with DefaultReferenceValuesBinding with DefaultIntegerRangeValues with DefaultLongValues with ConcretePrimitiveValuesConversions with LongValuesShiftOperators with TheProject with TheMethod with RecordDefUse
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
apply[S](projectConfiguration: ProjectConfiguration, project: Project[S], rawClassFiles: Traversable[(ClassFile, S)]): TraversableOnce[Feature[S]]
The function which analyzes the project and extracts the feature information.
The function which analyzes the project and extracts the feature information.
- project
A representation of the project. To speed up queries, intermediate information that may also be required by other queries can/should be stored in the project using the org.opalj.fpcf.PropertyStore or using a org.opalj.br.analyses.ProjectInformationKey.
- rawClassFiles
A direct 1:1 representation of the class files. This makes it possible to write queries that need to get an understanding of an unprocessed class file; e.g. that need to analyze the constant pool in detail.
- Definition Classes
- MicroPatterns → FeatureQuery
- Note
Every query should regularly check that its thread is not interrupted using
isInterrupted.
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
val
featureIDs: List[String]
The unique ids of the extracted features.
The unique ids of the extracted features.
- Definition Classes
- MicroPatterns → FeatureQuery
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hasExplicitSuperType(cl: ClassFile): Boolean
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
val
htmlDescription: Either[String, URL]
Returns an HTML description of this feature query that is targeted at end users; by default it calls
mdDescriptionto try to find a markdown document that describes this feature and then uses TxtMark to convert the document.Returns an HTML description of this feature query that is targeted at end users; by default it calls
mdDescriptionto try to find a markdown document that describes this feature and then uses TxtMark to convert the document. If a document is returned the web engine's user style sheet is set to org.opalj.hermes.FeatureQueries.MDCSS; in case of an URL no stylesheet is set.- returns
An HTML document/a link to an HTML document that describes this query.
- Definition Classes
- FeatureQuery
-
val
id: String
A short descriptive name; by default the simple name of
thisclass.A short descriptive name; by default the simple name of
thisclass.- Definition Classes
- FeatureQuery
- def isAugmentedType(cl: ClassFile): Boolean
- def isBox(cl: ClassFile, fa: FieldAccessInformation): Boolean
- def isCanopy(cl: ClassFile, fa: FieldAccessInformation): Boolean
- def isCobolLike(cl: ClassFile): Boolean
- def isCommonState(cl: ClassFile): Boolean
- def isCompoundBox(cl: ClassFile, fa: FieldAccessInformation): Boolean
- def isDataManager[S](cl: ClassFile)(implicit theProject: Project[S]): Boolean
-
def
isDesignator(cl: ClassFile)(implicit project: SomeProject): Boolean
[From the paper] Thus, a Designator micro pattern is an interface which does not declare any methods, does not define any static fields or methods, and does not inherit such members from any of its superinterfaces.
[From the paper] Thus, a Designator micro pattern is an interface which does not declare any methods, does not define any static fields or methods, and does not inherit such members from any of its superinterfaces.
A class can also be Designator if its definition, as well as the definitions of all of its ancestors (other than Object), are empty.
A class can also be Designator if its definition, as well as the definitions of all of its ancestors (other than Object), are empty.
- def isExtender[S](cl: ClassFile)(implicit theProject: Project[S]): Boolean
- def isFunctionObject(cl: ClassFile): Boolean
- def isFunctionPointer(cl: ClassFile): Boolean
- def isGetter[S](method: Method)(implicit theProject: Project[S]): Boolean
- def isImmutable(cl: ClassFile, fa: FieldAccessInformation): Boolean
- def isImplementor[S](cl: ClassFile, theProject: Project[S]): Boolean
- def isInitMethod(method: Method): Boolean
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
isInterrupted(): Boolean
Queries should regularly check if they are interrupted using this method.
Queries should regularly check if they are interrupted using this method.
- Definition Classes
- FeatureQuery
-
def
isJoiner(cl: ClassFile): Boolean
[From the paper:] An empty interface which extends more than one interface is called a Joiner, since in effect, it joins together the sets of members of its parents.
[From the paper:] An empty interface which extends more than one interface is called a Joiner, since in effect, it joins together the sets of members of its parents.
An empty class which implements one or more interfaces is also a Joiner. Here, empty means that the we can have constructors and (optionally) a serialVersionUID field.
- def isObjectMethod(method: Method): Boolean
- def isOutline(cl: ClassFile): Boolean
- def isOverrider[S](cl: ClassFile, theProject: Project[S]): Boolean
-
def
isPool(cl: ClassFile): Boolean
[From the paper:] The most degenerate classes are those which have neither state nor behavior.
[From the paper:] The most degenerate classes are those which have neither state nor behavior. Such a class is distinguished by the requirement that it declares no instance fields. Moreover, all of its declared static fields must be final. Another requirement is that the class has no methods (other than those inherited from Object, or automatically generated constructors).
- def isPseudoClass(cl: ClassFile): Boolean
- def isPureType(cl: ClassFile): Boolean
- def isRecord(cl: ClassFile): Boolean
- def isRestrictedCreation(cl: ClassFile): Boolean
- def isSampler(cl: ClassFile): Boolean
- def isSetter[S](method: Method)(implicit theProject: Project[S]): Boolean
- def isSink(cl: ClassFile): Boolean
- def isStateMachine(cl: ClassFile): Boolean
- def isStateless(cl: ClassFile): Boolean
-
def
isTaxonomy(cl: ClassFile): Boolean
[From the paper:] An empty interface which extends a single interface is called a Taxonomy, since it is included, in the subtyping sense, in its parent, but otherwise identical to it.
[From the paper:] An empty interface which extends a single interface is called a Taxonomy, since it is included, in the subtyping sense, in its parent, but otherwise identical to it.
There are also classes which are Taxonomy. Such a class must similarly be empty, i.e., add no fields nor methods to its parent. Since constructors are not inherited, an empty class may contain constructors. A Taxonomy class may not implement any interfaces.
- def isTrait(cl: ClassFile): Boolean
-
def
mdDescription: String
Returns an explanation of the feature (group) using Markdown as its formatting language.
Returns an explanation of the feature (group) using Markdown as its formatting language.
By default the name of the class is used to lookup the resource "className.markdown" which is expected to be found along the extractor.
- Attributes
- protected
- Definition Classes
- FeatureQuery
-
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()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated