Class License

java.lang.Object
org.episteme.social.law.License
All Implemented Interfaces:
Identified<Identification>, Property

public class License extends Object implements Property, Identified<Identification>
Represents an official license or certificate issued by an authority that grants specific rights to an owner. Examples include birth certificates, driving licenses, IDs, and professional diplomas.
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Constructor Details

    • License

      public License(EconomicAgent owner, Organization authority, Identification identification, String right)
      Creates a new License object with a single initial right.
      Parameters:
      owner - the agent who owns the license
      authority - the organization that issued the license
      identification - the unique identification of the license document
      right - the initial right granted by this license
      Throws:
      IllegalArgumentException - if any argument is null or empty
    • License

      public License(EconomicAgent owner, Organization authority, Identification identification, List<String> rights)
      Creates a new License object with multiple rights.
      Parameters:
      owner - the agent who owns the license
      authority - the organization that issued the license
      identification - the unique identification of the license document
      rights - the list of rights granted by this license
      Throws:
      IllegalArgumentException - if any argument is null, empty, or contains non-String elements
  • Method Details

    • getOwners

      public Set<EconomicAgent> getOwners()
      Returns the set of owners of this license. Currently, only the primary owner is returned.
      Specified by:
      getOwners in interface Property
      Returns:
      a set containing the license owner
    • getAuthority

      public Organization getAuthority()
      Returns the authority that issued this license.
      Returns:
      the issuing organization
    • getIdentification

      public Identification getIdentification()
    • 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
    • getRights

      public List<String> getRights()
      Returns the list of rights granted by this license.
      Returns:
      a list of rights as strings
    • getValue

      public Money getValue()
      Returns the economic value of this license. Unless overridden by a subclass, the default value is 0 USD.
      Specified by:
      getValue in interface Property
      Returns:
      the value of the license