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}