Class AkomaNtosoLoader

java.lang.Object
org.episteme.core.io.AbstractResourceReader<Statute>
org.episteme.social.law.loaders.AkomaNtosoLoader
All Implemented Interfaces:
ResourceIO<Statute>, ResourceReader<Statute>, LegalDocumentLoader

public final class AkomaNtosoLoader extends AbstractResourceReader<Statute> implements LegalDocumentLoader
Loader for Akoma Ntoso (XML-based) legal documents.

This implementation uses DOM parsing to extract the hierarchical structure of legal acts, including metadata and articles.

Since:
1.2
Version:
2.0 (Modernized)
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
See Also:
  • Constructor Details

    • AkomaNtosoLoader

      public AkomaNtosoLoader()
  • Method Details

    • loadFromSource

      protected Statute loadFromSource(String path) throws Exception
      Specified by:
      loadFromSource in class AbstractResourceReader<Statute>
      Throws:
      Exception
    • loadFromInputStream

      protected Statute loadFromInputStream(InputStream is, String id) throws Exception
      Overrides:
      loadFromInputStream in class AbstractResourceReader<Statute>
      Throws:
      Exception
    • loadContent

      public Statute loadContent(String xml)
      Description copied from interface: LegalDocumentLoader
      Loads a legal document (statute) from a string content.
      Specified by:
      loadContent in interface LegalDocumentLoader
      Parameters:
      xml - the raw content
      Returns:
      the parsed Statute
    • getName

      public String getName()
      Description copied from interface: ResourceIO
      Returns the display name of this resource handler. MUST be implemented with I18N support.
      Specified by:
      getName in interface ResourceIO<Statute>
      Returns:
      the display name
    • getDescription

      public String getDescription()
      Description copied from interface: ResourceIO
      Returns a short description of this resource handler. MUST be implemented with I18N support.
      Specified by:
      getDescription in interface ResourceIO<Statute>
      Returns:
      the description
    • getLongDescription

      public String getLongDescription()
      Description copied from interface: ResourceIO
      Returns a long description of this resource handler. MUST be implemented with I18N support.
      Specified by:
      getLongDescription in interface ResourceIO<Statute>
      Returns:
      the long description
    • getCategory

      public String getCategory()
      Description copied from interface: ResourceIO
      Returns the category for grouping. MUST be implemented with I18N support.
      Specified by:
      getCategory in interface ResourceIO<Statute>
      Returns:
      the category name
    • getResourcePath

      public String getResourcePath()
      Description copied from interface: ResourceIO
      Returns the base path where this resource is located.
      Specified by:
      getResourcePath in interface ResourceIO<Statute>
    • getResourceType

      public Class<Statute> getResourceType()
      Description copied from interface: ResourceIO
      Returns the type of resource.
      Specified by:
      getResourceType in interface ResourceIO<Statute>
    • getSupportedVersions

      public String[] getSupportedVersions()
      Description copied from interface: ResourceIO
      Returns the supported versions of the format this reader/writer handles.

      Each implementation MUST override this method to declare which versions of the underlying format are supported. The returned array should contain version strings in the format's standard notation (e.g., "3.0", "2.1", "Level 3 Version 2").

      Examples:

      • MathML: {"3.0", "2.0"}
      • SBML: {"Level 3 Version 2", "Level 3 Version 1", "Level 2 Version 5"}
      • PhyloXML: {"1.10", "1.00"}

      Specified by:
      getSupportedVersions in interface ResourceIO<Statute>
      Returns:
      array of supported version strings, never null (empty array if version-agnostic)