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

io.apicurio.registry.resolver.SchemaResolver Maven / Gradle / Ivy

There is a newer version: 3.0.4
Show newest version
package io.apicurio.registry.resolver;

import io.apicurio.registry.resolver.data.Record;
import io.apicurio.registry.resolver.strategy.ArtifactReference;
import io.apicurio.registry.resolver.strategy.ArtifactReferenceImpl;
import io.apicurio.registry.resolver.strategy.ArtifactReferenceResolverStrategy;
import io.apicurio.registry.rest.client.RegistryClient;

import java.io.Closeable;
import java.util.Map;

public interface SchemaResolver extends Closeable {

    /**
     * Configure, if supported.
     *
     * @param configs the configs
     * @param isKey are we handling key or value
     */
    default void configure(Map configs, SchemaParser schemaMapper) {
    }

    public void setClient(RegistryClient client);

    public void setArtifactResolverStrategy(
            ArtifactReferenceResolverStrategy artifactResolverStrategy);

    public SchemaParser getSchemaParser();

    /**
     * Used to register or to lookup a schema in the registry
     * 
     * @param data, record containing metadata about it that can be used by the resolver to lookup a schema in
     *            the registry
     * @return SchemaLookupResult
     */
    public SchemaLookupResult resolveSchema(Record data);

    /**
     * The schema resolver may use different pieces of information from the {@link ArtifactReferenceImpl}
     * depending on the configuration of the schema resolver.
     * 
     * @param reference
     * @return SchemaLookupResult
     */
    public SchemaLookupResult resolveSchemaByArtifactReference(ArtifactReference reference);

    /**
     * Hard reset cache
     */
    public void reset();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy