Class Economy

java.lang.Object
org.episteme.social.economics.Economy
All Implemented Interfaces:
Serializable, Commented, ComprehensiveIdentification, Identified<Identification>, Named, UniversalDataModel
Direct Known Subclasses:
FreeMarketEconomy, PlannedEconomy

public abstract class Economy extends Object implements ComprehensiveIdentification, UniversalDataModel
Functional abstraction for an economic system, encompassing organizations, central banking, and macro-financial indicators. It provides the framework for simulating resource flows and systemic events within a specific economic situation.
Since:
1.0
Version:
2.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
See Also:
  • Constructor Details

    • Economy

      public Economy(Set<Organization> orgs, Bank centralBank)
      Initializes a new Economy with its constituent organizations and a mandatory central bank.
      Parameters:
      orgs - the initial set of productive organizations
      centralBank - the system's central bank
      Throws:
      NullPointerException - if centralBank or orgs is null
    • Economy

      public Economy(Identification id, Set<Organization> orgs, Bank centralBank)
  • Method Details

    • usa

      public static Economy usa()
      Factory method creating a snapshot of the USA economy.
      Returns:
      a concrete Economy instance
    • getOrganizations

      public Set<Organization> getOrganizations()
    • getCentralBank

      public Bank getCentralBank()
    • addOrganization

      public void addOrganization(Organization org)
    • removeOrganization

      public void removeOrganization(Organization org)
    • getNumberOfUnits

      public Quantity<?> getNumberOfUnits(Resource resource)
      Aggregates the total quantity of a specific resource across all organizations in the current economy.
      Parameters:
      resource - the prototype of the resource to count
      Returns:
      the total quantity unit of that resource, or null if not found
    • getValue

      public Money getValue()
      Calculates the gross value of all organizations in the economy based on their localized liquid capital.
      Returns:
      total aggregated value in Money units
    • step

      public abstract void step(Real dt)
    • getId

      public Identification getId()
      Description copied from interface: Identified
      Returns the unique identifier of this entity.
      Specified by:
      getId in interface Identified<Identification>
      Returns:
      the identifier
    • getTraits

      public Map<String,Object> getTraits()
      Description copied from interface: ComprehensiveIdentification
      Returns the traits map for this entity.
      Specified by:
      getTraits in interface Commented
      Specified by:
      getTraits in interface ComprehensiveIdentification
      Returns:
      the traits map
    • getModelType

      public String getModelType()
      Description copied from interface: UniversalDataModel
      Returns a unique identifier for the type of data model. Examples: "SPATIAL_GEOMETRY", "ECONOMIC_PORTFOLIO", "ARCHITECTURAL_PLAN".
      Specified by:
      getModelType in interface UniversalDataModel
    • getGDP

      public Money getGDP()
      Returns:
      the current Gross Domestic Product (GDP)
    • setGDP

      public void setGDP(Money gdp)
    • getInflationRate

      public Real getInflationRate()
    • setInflationRate

      public void setInflationRate(Real rate)
    • getUnemploymentRate

      public Real getUnemploymentRate()
    • setUnemploymentRate

      public void setUnemploymentRate(Real rate)
    • getMetadata

      public Map<String,Object> getMetadata()
      Description copied from interface: UniversalDataModel
      Returns a map of metadata for this model (e.g., creation date, source).
      Specified by:
      getMetadata in interface UniversalDataModel
    • getQuantities

      public Map<String, Quantity<?>> getQuantities()
      Description copied from interface: UniversalDataModel
      Returns the primary physical values associated with this model. This allows generic tools to extract and convert measurements.
      Specified by:
      getQuantities in interface UniversalDataModel