Class CollapsingBorderModel

  • Direct Known Subclasses:
    CollapsingBorderModelEyeCatching

    public abstract class CollapsingBorderModel
    extends java.lang.Object
    This class is a superclass for the two collapsing border models defined in the XSL 1.0 specification.
    • Constructor Detail

      • CollapsingBorderModel

        public CollapsingBorderModel()
    • Method Detail

      • getBorderModelFor

        public static CollapsingBorderModel getBorderModelFor​(int borderCollapse)
        Parameters:
        borderCollapse - border collapse control
        Returns:
        the border model for the cell
      • getOtherSide

        public static int getOtherSide​(int side)
        Parameters:
        side - the side on the current cell
        Returns:
        the adjacent side on the neighbouring cell
      • isVerticalRelation

        protected boolean isVerticalRelation​(int side)
        Parameters:
        side - the side to investigate
        Returns:
        true if the adjacent cell is before or after
      • compareInt

        private static int compareInt​(int value1,
                                      int value2)
      • getStylePreferenceValue

        private static int getStylePreferenceValue​(int style)
        See rule 4 in 6.7.10 for the collapsing border model.
        Parameters:
        style - the border style to get the preference value for
        Returns:
        the preference value of the style
      • compareStyles

        static int compareStyles​(int style1,
                                 int style2)
        Compares the two given styles (see Constants).
        Parameters:
        style1 - a style constant
        style2 - another style constant
        Returns:
        a value < 0 if style1 has less priority than style2, 0 if both are equal, a value > 0 if style1 has more priority than style2
      • getHolderPreferenceValue

        private static int getHolderPreferenceValue​(int id)
      • compareFOs

        static int compareFOs​(int id1,
                              int id2)
        Compares the two given FO ids (Constants.FO*) in terms of border declaration.
        Parameters:
        id1 - a FO id (Constants.FO_TABLE, Constants.FO_TABLE_BODY, etc.)
        id2 - another FO id
        Returns:
        a value < 0 if id1 has less priority than id2, 0 if both are equal, a value > 0 if id1 has more priority than id2
      • determineWinner

        public abstract BorderSpecification determineWinner​(BorderSpecification border1,
                                                            BorderSpecification border2,
                                                            boolean discard)
        Returns the border which wins the border conflict resolution. In case the two borders are equivalent (identical, or only the color is different), null is returned.
        Parameters:
        border1 - a border specification
        border2 - another border specification
        discard - true if the .conditionality component of the border width must be taken into account
        Returns:
        the winning border, null if the two borders are equivalent