Class PropertyBuilder<B extends PropertyBuilder<B,​T>,​T>

    • Field Detail

      • typeId

        protected @Nullable net.sourceforge.pmd.properties.internal.PropertyTypeId typeId
        Non-null if declared in XML.
      • isXPathAvailable

        protected boolean isXPathAvailable
    • Method Detail

      • desc

        public B desc​(String desc)
        Specify the description of the property. This is used for documentation. Please describe precisely how the property may change the behaviour of the rule. Providing complete information should be preferred over being concise.

        Calling this method is required for build() to succeed.

        Parameters:
        desc - The description
        Returns:
        The same builder
        Throws:
        IllegalArgumentException - If the description is null or whitespace
      • availableInXPath

        public B availableInXPath​(boolean b)
        If true, the property will be made available to XPath queries as an XPath variable. The default is false (except for properties of XPath rules that were defined in XML).
        Parameters:
        b - Whether to enable or not
        Returns:
        This builder
      • require

        public abstract B require​(PropertyConstraint<? super T> constraint)
        Add a constraint on the values that this property may take. The validity of values will be checked when parsing the XML, and invalid values will be reported. A rule will never be run if some of its properties violate some constraints.

        Constraints should be independent from each other, and should perform no side effects. PMD doesn't specify how many times a constraint predicate will be executed, or in what order.

        Parameters:
        constraint - The constraint
        Returns:
        The same builder
        See Also:
        NumericConstraints
      • getName

        public String getName()
        Returns the name of the property to be built.