All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opalj.fpcf.PropertyKind.scala Maven / Gradle / Ivy

The newest version!
/* BSD 2-Clause License - see OPAL/LICENSE for details. */
package org.opalj.fpcf

/**
 * Identifies the kind of a property.
 *
 * Generally, we distinguish between regular properties and simple properties. The latter
 * are generally only to be used if lower bounds cannot be computed or a very extensive and
 * are never of interest to any potential client. E.g., in case of an IFDS analysis,
 * computing the lower bound is not meaningful; in case of a call graph analysis, the lower
 * bound is usually either prohibitively expensive or is not usefull to any analysis.
 */
trait PropertyKind extends Any /* we now have a universal trait */ {

    /**
     * The id uniquely identifies this property's category. All property objects of the
     * same kind have to use the same id which is guaranteed since they share the same
     * `PropertyKey`
     */
    def id: Int
}

object PropertyKind {

    /**
     * The maximum number of Property Kinds that is (currently!) supported. Increasing this
     * number is necessary iff a related exception is thrown.
     */
    private[fpcf] final val SupportedPropertyKinds /*: Int*/ = 72

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy