Interface ResourceIO<T>

All Known Subinterfaces:
CatalogReader, FormalSystemExporter, FormalSystemImporter, LegalDocumentLoader, LegalDocumentWriter, ResourceReader<T>, ResourceWriter<T>
All Known Implementing Classes:
AbstractLegalDocumentWriter, AbstractResourceReader, AbstractResourceWriter, AcousticEnvironmentLoader, AkomaNtosoLoader, AlphaVantageQuoteReader, ArticleCatalogReader, BinaryModelLoader, BiologicalResourceReader, BioPAXReader, BNFGrammarReader, BookCatalogReader, ChemistryDataReader, CMLReader, CompositionLoader, CoqExporter, CoqImporter, CountryCodesReader, CrossRefReader, CSVTimeSeriesReader, DemographicResourceReader, DICOMReader, DrugBankReader, EconomicScenarioReader, ElevationReader, ETOPOElevationReader, EurLexLoader, ExchangeRateReader, FactbookReader, FASTABioSequenceReader, FASTAReader, FASTAWriter, FASTQReader, FbxMeshReader, FinancialMarketReader, FITSReader, GBIFReader, GBIFTaxonomyReader, GenBankReader, GeoJSONReader, GMLReader, GoogleElevationReader, GoogleFormsReader, HDF5Reader, HorizonsEphemerisReader, HumanDevelopmentReader, ICD10Reader, ITISReader, IUPACGoldBookReader, JPLEphemerisLoader, LegifranceLoader, LinguisticDataReader, MathMLReader, MetamathExporter, MetamathImporter, MidiLoader, MusicXMLReader, NASAExoplanetsReader, NativeFITSReader, NativeFITSWriter, NativeHDF5Reader, NativeHDF5TensorWriter, NativeHDF5Writer, NCBITaxonomyReader, NeuralModelWriter, NeuroMLReader, NMEAReader, ObjMeshReader, OEISWriter, OllamaModelReader, ONNXModelReader, OpenAIModelReader, OpenMathReader, OpenMathWriter, OpenWeatherReader, PDBMLReader, PDBReader, PDBWriter, PEGGrammarReader, PeriodicTableReader, PhylogeneticTreeReader, PhyloXMLReader, PMMLReader, PubChemReader, QedeqExporter, QedeqImporter, SBMLReader, SciencesDatabaseReader, SIMBADReader, SRTMElevationReader, StarCatalogLoader, StarReader, StlMeshReader, ThermoMLReader, TigerXMLReader, UniProtReader, UnLawLoader, USGSEarthquakesReader, UsLawLoader, VirusReader, VitaminReader, VizieRReader, VTKWriter, Word2VecReader, WorldBankReader, ZarrReader

public interface ResourceIO<T>
Common interface for all resource I/O components in Episteme. Replaces the old ResourceLoader. Implementations MUST override: getCategory(), getName(), getDescription() with proper I18N support.
Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Method Details

    • getResourcePath

      String getResourcePath()
      Returns the base path where this resource is located.
    • getResourceType

      Class<T> getResourceType()
      Returns the type of resource.
    • isFileBased

      default boolean isFileBased()
      Returns true if this uses local file resources.
    • getExpectedResourceFiles

      default String[] getExpectedResourceFiles()
      Returns expected resource file names for auditing.
    • getName

      String getName()
      Returns the display name of this resource handler. MUST be implemented with I18N support.
      Returns:
      the display name
    • getDescription

      String getDescription()
      Returns a short description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the description
    • getLongDescription

      String getLongDescription()
      Returns a long description of this resource handler. MUST be implemented with I18N support.
      Returns:
      the long description
    • getCategory

      String getCategory()
      Returns the category for grouping. MUST be implemented with I18N support.
      Returns:
      the category name
    • isInput

      default boolean isInput()
      Returns true if this is an input (reader) resource.
    • isOutput

      default boolean isOutput()
      Returns true if this is an output (writer) resource.
    • getSupportedVersions

      String[] getSupportedVersions()
      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"}

      Returns:
      array of supported version strings, never null (empty array if version-agnostic)
    • getSupportedExtensions

      default String[] getSupportedExtensions()
      Returns the supported file extensions (e.g., ".h5", ".fits").