Class IndentLevel


  • public class IndentLevel
    extends Object
    Encapsulates representation of notion of expected indentation levels. Provide a way to have multiple acceptable levels. This class is immutable.
    • Field Detail

      • levels

        private final BitSet levels
        Set of acceptable indentation levels.
    • Constructor Detail

      • IndentLevel

        public IndentLevel​(int indent)
        Creates new instance with one acceptable indentation level.
        Parameters:
        indent - acceptable indentation level.
      • IndentLevel

        public IndentLevel​(IndentLevel base,
                           int... offsets)
        Creates new instance for nested structure.
        Parameters:
        base - parent's level
        offsets - offsets from parent's level.
      • IndentLevel

        private IndentLevel()
        Creates new instance with no acceptable indentation level. This is only used internally to combine multiple levels.
    • Method Detail

      • isMultiLevel

        public final boolean isMultiLevel()
        Checks whether we have more than one level.
        Returns:
        whether we have more than one level.
      • isAcceptable

        public boolean isAcceptable​(int indent)
        Checks if given indentation is acceptable.
        Parameters:
        indent - indentation to check.
        Returns:
        true if given indentation is acceptable, false otherwise.
      • isGreaterThan

        public boolean isGreaterThan​(int indent)
        Returns true if indent less than minimal of acceptable indentation levels, false otherwise.
        Parameters:
        indent - indentation to check.
        Returns:
        true if indent less than minimal of acceptable indentation levels, false otherwise.
      • addAcceptable

        public static IndentLevel addAcceptable​(IndentLevel base,
                                                int... additions)
        Adds one or more acceptable indentation level.
        Parameters:
        base - class to add new indentations to.
        additions - new acceptable indentation.
        Returns:
        New acceptable indentation level instance.
      • addAcceptable

        public static IndentLevel addAcceptable​(IndentLevel base,
                                                IndentLevel addition)
        Combines 2 acceptable indentation level classes.
        Parameters:
        base - class to add new indentations to.
        addition - new acceptable indentation.
        Returns:
        New acceptable indentation level instance.
      • getFirstIndentLevel

        public int getFirstIndentLevel()
        Returns first indentation level.
        Returns:
        indentation level.
      • getLastIndentLevel

        public int getLastIndentLevel()
        Returns last indentation level.
        Returns:
        indentation level.