Class BorderEvolution
java.lang.Object
org.episteme.social.history.BorderEvolution
Models and visualizes the evolution of political borders over historical time.
Provides tools for spatial-temporal queries regarding sovereignty and territorial changes.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordRepresents a specific event that changed territorial boundaries.static enumTypes of events that cause border modifications.static final recordRepresents a defined geographical territory under specific sovereignty. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidRegisters a border change in the global historical database.static voidaddTerritory(BorderEvolution.Territory territory) Registers a territory in the global historical database.static doublecalculateTerritorialExtent(String entityName, TimeCoordinate date) Calculates the total territorial extent (approx. area in km²) of an entity at a given date.static StringgenerateTimeline(int startYear, int endYear) Generates a human-readable timeline of border changes within a year range.static List<BorderEvolution.BorderChange> getChangesForEntity(String entityName) Retrieves all recorded border changes affecting a specific political entity.getSovereignAt(double latitude, double longitude, TimeCoordinate date) Determines which sovereign entity controlled a specific location at a given date.static List<BorderEvolution.Territory> Retrieves all territories that were active at a specific historical date.static voidPopulates the database with sample historical territorial data.
-
Method Details
-
addTerritory
Registers a territory in the global historical database.- Parameters:
territory- the territory to add- Throws:
NullPointerException- if territory is null
-
addBorderChange
Registers a border change in the global historical database.- Parameters:
change- the border change event to add- Throws:
NullPointerException- if change is null
-
getTerritoriesAtDate
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 latitudelongitude- geographical longitudedate- historical date- Returns:
- name of the sovereign entity, if found as an
Optional - Throws:
NullPointerException- if date is null
-
getChangesForEntity
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
Calculates the total territorial extent (approx. area in km²) of an entity at a given date.- Parameters:
entityName- the name of the entitydate- historical date- Returns:
- approximate area in km²
- Throws:
NullPointerException- if entityName or date is null
-
generateTimeline
Generates a human-readable timeline of border changes within a year range.- Parameters:
startYear- starting yearendYear- ending year- Returns:
- formatted timeline string
-
loadSampleData
public static void loadSampleData()Populates the database with sample historical territorial data.
-