/*
* 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.database.api.repository;
import java.util.List;
import java.util.Set;
import org.constellation.database.api.jooq.tables.pojos.Data;
import org.constellation.database.api.jooq.tables.pojos.Metadata;
import org.constellation.database.api.jooq.tables.pojos.Service;
import org.constellation.database.api.jooq.tables.pojos.ServiceDetails;
import org.constellation.database.api.jooq.tables.pojos.ServiceExtraConfig;
import org.constellation.database.api.pojo.ServiceReference;
public interface ServiceRepository {
int create(Service service);
List<Service> findAll();
Service findById(int id);
List<Service> findByDataId(int dataId);
List<Service> findByType(String type);
Service findByIdentifierAndType(String id, String type);
void delete(Integer id);
List<String> findIdentifiersByType(String type);
ServiceDetails getServiceDetailsForDefaultLang(int serviceId);
ServiceDetails getServiceDetails(int serviceId, String language);
void createOrUpdateServiceDetails(ServiceDetails metadata);
List<ServiceExtraConfig> getExtraConfig(int id);
ServiceExtraConfig getExtraConfig(int id, String filename);
java.util.Map<String, Set<String>> getAccessiblesServicesByType(String name);
Service update(Service service);
Service updateConfig(Service service);
void updateExtraFile(Service service, String fileName, String config);
Service findByMetadataId(String metadataId);
List<Data> findDataByServiceId(Integer id);
Metadata getMetadata(Integer id);
public List<ServiceReference> fetchByDataId(int dataId);
}