/**
* Copyright (c) 2012 - 2016 Data In Motion and others.
* All rights reserved.
*
* This program and the accompanying materials are made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Data In Motion - initial API and implementation
*/
package org.gecko.util.uriprovider;
/**
* Configuration service for the creation, update and delete of the {@link LocationUriProvider} using
* configuration admin
* @author Mark Hoffmann
* @since 10.11.2016
*/
public interface LocationUriConfigurer {
/**
* Creates a new configuration for a provider for the given parameters
* @param id the provider id/configuration id
* @param schema the uri schema
* @param base a base uri
* @param path a path under the base uri
* @param context a special context identifier, which is a last segment in the uri path
*/
public void createLocationUri(String id, String schema, String base, String path, String context);
/**
* Updates a new configuration for a provider for the given parameters. If no configuration exists this
* method does nothing. It is the same like calling the second method with parameter 'create=false'
* @param id the provider id/configuration id
* @param schema the uri schema
* @param base a base uri
* @param path a path under the base uri
* @param context a special context identifier, which is a last segment in the uri path
*/
public void updateLocationUri(String id, String schema, String base, String path, String context);
/**
* Updates a new configuration for a provider for the given parameters.
* @param id the provider id/configuration id
* @param schema the uri schema, can be null
* @param base a base uri, can be null
* @param path a path under the base uri, can be null
* @param context a special context identifier, which is a last segment in the uri path, can be null
* @param create set to true
, to create a new configuration, if none already exists
*/
public void updateLocationUri(String id, String schema, String base, String path, String context, boolean create);
/**
* Removes a configuration with the given id
* @param id the configuration id
*/
public void deleteLocationUri(String id);
}