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

io.deephaven.uri.StructuredUri Maven / Gradle / Ivy

There is a newer version: 0.36.1
Show newest version
//
// Copyright (c) 2016-2024 Deephaven Data Labs and Patent Pending
//
package io.deephaven.uri;

import java.net.URI;

/**
 * A structured URI is an object which can be represented in serialized form as a {@link URI}; and subsequently, can be
 * deserialized back into the same object.
 *
 * @see DeephavenUri
 * @see CustomUri
 */
public interface StructuredUri {

    /**
     * The URI.
     *
     * @return the URI.
     */
    URI toURI();

    /**
     * Wraps up {@code this} URI as a {@link RemoteUri remote URI}.
     *
     * @param target the target
     * @return the remote URI
     */
    RemoteUri target(DeephavenTarget target);

    /**
     * The URI string.
     *
     * @return the URI string
     */
    @Override
    String toString();

     V walk(V visitor);

    interface Visitor {
        void visit(QueryScopeUri queryScopeUri);

        void visit(ApplicationUri applicationUri);

        void visit(FieldUri fieldUri);

        void visit(RemoteUri remoteUri);

        void visit(URI customUri);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy