All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.buschmais.xo.api.XOManagerFactory Maven / Gradle / Ivy

The newest version!
package com.buschmais.xo.api;

import com.buschmais.xo.api.bootstrap.XOUnit;
import com.buschmais.xo.api.metadata.MetadataProvider;
import com.buschmais.xo.api.metadata.type.DatastoreEntityMetadata;
import com.buschmais.xo.api.metadata.type.DatastoreRelationMetadata;

/**
 * Defines the factory interfaces for {@link XOManager} instances.
 */
public interface XOManagerFactory, EntityDiscriminator, RelationMetadata extends DatastoreRelationMetadata, RelationDiscriminator>
    extends AutoCloseable, CloseSupport {

    /**
     * Create a {@link XOManager} instance.
     *
     * @return The {@link XOManager} instance.
     */
    XOManager createXOManager();

    /**
     * Close this factory.
     */
    void close();

    /**
     * Return the datastore configuration object used to initialize this factory.
     *
     * @return The underlying configuration.
     */
    XOUnit getXOUnit();

    /**
     * Reutrn the underlying configured datastore.
     *
     * @param datastoreType
     *     The expected datastore type.
     * @param 
     *     The datastore type.
     * @return The datastore.
     */
     DS getDatastore(Class datastoreType);

    MetadataProvider getMetadataProvider();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy