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

org.modeshape.jcr.api.federation.FederationManager Maven / Gradle / Ivy

There is a newer version: 5.4.1.Final
Show newest version
/*
 * ModeShape (http://www.modeshape.org)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.modeshape.jcr.api.federation;

import javax.jcr.RepositoryException;

/**
 * The federation manager object which provides the entry point into ModeShape's federation system, allowing clients to create
 * federated nodes.
 *
 * @author Horia Chiorean ([email protected])
 */
public interface FederationManager {

    /**
     * Creates an external projection by linking an internal node with an external node, from a given source using an optional alias.
     * If this is the first node linked to the existing node, it will convert the existing node to a federated node.
     *
     * @param absNodePath a {@code non-null} string representing the absolute path to an existing internal node.
     * @param sourceName a {@code non-null} string representing the name of an external source, configured in the repository.
     * @param externalPath a {@code non-null} string representing a path in the external source, where at which there is an external
     * node that will be linked.
     * @param alias an optional string representing the name under which the alias should be created. If not present, the {@code externalPath}
     * will be used as the name of the alias.
     * @throws RepositoryException if the repository cannot perform the operation.
     */
    public void createProjection( String absNodePath,
                                  String sourceName,
                                  String externalPath,
                                  String alias ) throws RepositoryException;

    /**
     * Removes a projection located at the given path, in the workspace which was used to get the federation manager.
     * 

* A projection path has the form: [repositoryPath]/[projection alias] as created via * {@link #createProjection(String, String, String, String)} *

* * @param projectionPath a {@code non-null} String representing the path to a projection * @throws IllegalArgumentException if the projection path does not represent a valid path * @throws javax.jcr.PathNotFoundException if either the repository path or the projection alias are not valid * @throws RepositoryException if anything unexpected fails */ public void removeProjection( String projectionPath ) throws RepositoryException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy