Class Numbering

java.lang.Object
org.episteme.core.util.Numbering
All Implemented Interfaces:
Serializable, Comparable<Numbering>
Direct Known Subclasses:
SimpleNumbering

public class Numbering extends Object implements Comparable<Numbering>, Serializable
Represents a hierarchical numbering (e.g., "1.0.1", "Article 42.1"). Used for law articles, software versions, and other structured identifiers.
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
See Also:
  • Constructor Details

    • Numbering

      public Numbering(int... values)
      Creates a new Numbering from an array of integers.
      Parameters:
      values - components of the numbering (must be non-negative).
  • Method Details

    • parse

      public static Numbering parse(String s)
      Parses a dot-separated string into a Numbering.
      Parameters:
      s - dot-separated string (e.g., "1.2.3").
      Returns:
      new Numbering object.
    • getValues

      public int[] getValues()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • compareTo

      public int compareTo(Numbering other)
      Specified by:
      compareTo in interface Comparable<Numbering>
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getNext

      public Numbering getNext()
      Returns the next numbering at the current depth (e.g., 1.2 -> 1.3).
    • addMinor

      public Numbering addMinor()
      Adds a minor version (e.g., 1.2 -> 1.2.0).