Class Nation

All Implemented Interfaces:
Serializable, Commented, ComprehensiveIdentification, Identified<Identification>, Named, Positioned<Place>, SimulationAgent

public class Nation extends Tribe
Represents a sovereign nation or organized human PsychologicalGroup (modern tribe). A nation is defined by its territory, identity (Culture), and supreme law (Constitution). * @version 1.2
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
See Also:
  • Constructor Details

    • Nation

      public Nation(String name, Place formalTerritory, Culture culture)
      Initializes a new Nation.
      Parameters:
      name - the name of the nation
      formalTerritory - the physical territory
      culture - the dominant cultural identity
      Throws:
      NullPointerException - if any argument is null
    • Nation

      public Nation(String name, Place formalTerritory, Culture culture, EventDrivenEngine engine)
  • Method Details

    • getKind

      public int getKind()
      Returns the kind or classification of this nation.
      Returns:
      the kind constant from PoliticsConstants
    • setKind

      public void setKind(int kind)
      Sets the classification of the nation.
      Parameters:
      kind - the kind constant
    • getGovernment

      public Administration getGovernment()
      Returns the primary government administration.
      Returns:
      government instance
    • setGovernment

      public void setGovernment(Administration government)
      Sets the government administration.
      Parameters:
      government - the government
    • getParliment

      public Set<Human> getParliment()
      Returns an unmodifiable set of parliament members.
      Returns:
      set of human representatives
    • setParliment

      public void setParliment(Set<Human> parliment)
      Overwrites the parliament membership.
      Parameters:
      parliment - current set of members
    • addParlimentMember

      public void addParlimentMember(Human human)
      Adds an individual to the parliament.
      Parameters:
      human - the representative to add
    • removeParlimentMember

      public void removeParlimentMember(Human human)
      Removes an individual from the parliament membership.
      Parameters:
      human - the representative to remove
    • getConstitution

      public Constitution getConstitution()
      Returns the nation's constitution.
      Returns:
      constitution document
    • setConstitution

      public void setConstitution(Constitution constitution)
      Sets the nation's constitution.
      Parameters:
      constitution - the constitution
    • getCodes

      public Set<Code> getCodes()
      Returns an unmodifiable set of legislative codes.
      Returns:
      legal codes
    • setCodes

      public void setCodes(Set<Code> codes)
      Overwrites the nation's legal codes.
      Parameters:
      codes - the set of codes
    • addCode

      public void addCode(Code code)
      Adds a specific legal code to the nation's registry.
      Parameters:
      code - the code to add
    • removeCode

      public void removeCode(Code code)
      Removes a legal code from the registry.
      Parameters:
      code - the code to remove
    • getTreaties

      public Set<Treaty> getTreaties()
      Returns an unmodifiable set of registered international treaties.
      Returns:
      treaties
    • setTreaties

      public void setTreaties(Set<Treaty> treaties)
      Overwrites the list of international treaties.
      Parameters:
      treaties - the set of treaties
    • addTreaty

      public void addTreaty(Treaty treaty)
      Adds a new treaty to the nation's records.
      Parameters:
      treaty - the treaty instance
    • removeTreaty

      public void removeTreaty(Treaty treaty)
      Removes an international treaty from registration.
      Parameters:
      treaty - the treaty to remove
    • getOrganizations

      public Set<Organization> getOrganizations()
      Returns an unmodifiable set of affiliated organizations.
      Returns:
      organizations
    • setOrganizations

      public void setOrganizations(Set<Organization> organizations)
      Overwrites the set of nation-affiliated organizations.
      Parameters:
      organizations - the organization set
    • addOrganization

      public void addOrganization(Organization organization)
      Registers a new organization under the nation's jurisdiction.
      Parameters:
      organization - the organization to add
    • removeOrganization

      public void removeOrganization(Organization organization)
      Unregisters an organization from the nation's jurisdiction.
      Parameters:
      organization - the organization to remove