Class BorderEvolution

java.lang.Object
org.episteme.social.history.BorderEvolution

public final class BorderEvolution extends Object
Models and visualizes the evolution of political borders over historical time. Provides tools for spatial-temporal queries regarding sovereignty and territorial changes.
  • Method Details

    • addTerritory

      public static void addTerritory(BorderEvolution.Territory territory)
      Registers a territory in the global historical database.
      Parameters:
      territory - the territory to add
      Throws:
      NullPointerException - if territory is null
    • addBorderChange

      public static void addBorderChange(BorderEvolution.BorderChange change)
      Registers a border change in the global historical database.
      Parameters:
      change - the border change event to add
      Throws:
      NullPointerException - if change is null
    • getTerritoriesAtDate

      public static List<BorderEvolution.Territory> getTerritoriesAtDate(TimeCoordinate date)
      Retrieves all territories that were active at a specific historical date.
      Parameters:
      date - the date to query
      Returns:
      unmodifiable list of active territories
      Throws:
      NullPointerException - if date is null
    • getSovereignAt

      public static Optional<String> getSovereignAt(double latitude, double longitude, TimeCoordinate date)
      Determines which sovereign entity controlled a specific location at a given date.
      Parameters:
      latitude - geographical latitude
      longitude - geographical longitude
      date - historical date
      Returns:
      name of the sovereign entity, if found as an Optional
      Throws:
      NullPointerException - if date is null
    • getChangesForEntity

      public static List<BorderEvolution.BorderChange> getChangesForEntity(String entityName)
      Retrieves all recorded border changes affecting a specific political entity.
      Parameters:
      entityName - the name of the entity
      Returns:
      unmodifiable sorted list of border changes
      Throws:
      NullPointerException - if entityName is null
    • calculateTerritorialExtent

      public static double calculateTerritorialExtent(String entityName, TimeCoordinate date)
      Calculates the total territorial extent (approx. area in km²) of an entity at a given date.
      Parameters:
      entityName - the name of the entity
      date - historical date
      Returns:
      approximate area in km²
      Throws:
      NullPointerException - if entityName or date is null
    • generateTimeline

      public static String generateTimeline(int startYear, int endYear)
      Generates a human-readable timeline of border changes within a year range.
      Parameters:
      startYear - starting year
      endYear - ending year
      Returns:
      formatted timeline string
    • loadSampleData

      public static void loadSampleData()
      Populates the database with sample historical territorial data.