001package gudusoft.gsqlparser.pp2.layout;
002
003/**
004 * Priority bands for {@link LayoutRule}s. Higher values win conflicts (see
005 * {@link LayoutConflictResolver}). Rules in later layout stages generally have
006 * higher priority so they can override earlier, coarser decisions — e.g. the
007 * indent rule (S28) overrides the spacing rule's {@code blanksBefore} for a
008 * token that begins a new line.
009 *
010 * <p>Plan reference: §7.3/S24-S29.
011 */
012public final class LayoutPriorities {
013
014    private LayoutPriorities() { }
015
016    /** S24 — inter-token spacing (lowest; everything else may override it). */
017    public static final int SPACING = 100;
018
019    /** S25 — clause/master linebreaks and set-operator breaks. */
020    public static final int CLAUSE_LINEBREAK = 200;
021
022    /** S26 — JOIN/ON, parens, and comma layout. */
023    public static final int JOIN_PAREN_COMMA = 250;
024
025    /** S27 — CASE, AND/OR, and concatenation breaks. */
026    public static final int CASE_ANDOR = 300;
027
028    /** S28 — indentation (overrides spacing's leading-blank decisions). */
029    public static final int INDENT = 400;
030
031    /** S28 — column / assignment alignment. */
032    public static final int ALIGNMENT = 450;
033
034    /** S29 — keyword/identifier case modification (text only; orthogonal to whitespace). */
035    public static final int CASE_MODIFICATION = 500;
036}