/* * Constellation - An open source and standard compliant SDI * http://www.constellation-sdi.org * * Copyright 2014 Geomatys. * * 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.constellation.business; import java.util.List; import java.util.Map; import org.apache.sis.xml.MarshallerPool; import org.constellation.admin.dto.ServiceDTO; import org.constellation.configuration.ConfigurationException; import org.constellation.configuration.Instance; import org.constellation.configuration.ServiceStatus; import org.constellation.dto.Details; import org.constellation.database.api.jooq.tables.pojos.Service; /** * @author Cédric Briançon (Geomatys) */ public interface IServiceBusiness { void stop(String service, String identifier) throws ConfigurationException; void configure(String serviceType, String identifier, Details serviceMetadata, Object configuration) throws ConfigurationException; void start(String serviceType) throws ConfigurationException; void start(String serviceType, String identifier) throws ConfigurationException; void restart(String serviceType, String identifier, boolean closeFirst) throws ConfigurationException; void rename(String serviceType, String identifier, String newIdentifier) throws ConfigurationException; void delete(String serviceType, String identifier) throws ConfigurationException; Service ensureExistingInstance(String spec, String identifier) throws ConfigurationException; Object getConfiguration(String serviceType, String identifier) throws ConfigurationException; /** * Create a new service instance from input information. * @param serviceType Type of service to instantiate (CSW, WMS, etc.) * @param identifier The name to give to the service. * @param configuration An optional configuration specific to the queried type of service (WPS --> PRocessContext, etc.). * @param serviceMetadata An ISO 19115-2 metadata file to describe the service. If null a default empty metadata will be created. * @return * @throws ConfigurationException */ Object create(String serviceType, String identifier, Object configuration, Details serviceMetadata) throws ConfigurationException; List<String> getServiceIdentifiers(String wms); /** * Try to retrieve a service of the given type, using its name. * @param type Type of the service (WMTS, WPS, etc.) we search. * @param id The name of the service to return. * @return A service of the queried type matching input name, or null if we cannot find any. */ Service getServiceByIdentifierAndType(String type, String id); Details getInstanceDetails(String service, String id, String language) throws ConfigurationException; Object getExtraConfiguration(String serviceType, String identifier, String fileName) throws ConfigurationException; Object getExtraConfiguration(String sos, String id, String s, MarshallerPool instance) throws ConfigurationException; void setExtraConfiguration(String serviceType, String identifier, String fileName, Object config, MarshallerPool pool); void deleteAll() throws ConfigurationException; Map<String,ServiceStatus> getStatus(String spec); Instance getI18nInstance(String serviceType, String identifier, String lang); List<ServiceDTO> getAllServices(String lang) throws ConfigurationException; List<ServiceDTO> getAllServicesByType(String lang, String type) throws ConfigurationException; void setInstanceDetails(String serviceType, String identifier, Details details, String language, boolean default_) throws ConfigurationException; }