/* * 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.utils; import org.apache.sis.metadata.iso.DefaultMetadata; import org.apache.sis.util.ArgumentChecks; import org.constellation.dto.Details; import java.util.Date; import java.util.List; import static org.constellation.utils.CstlMetadataTemplate.DATA; import static org.constellation.utils.CstlMetadataTemplate.PROVIDER; import static org.constellation.utils.CstlMetadataTemplate.SERVICE; import org.opengis.util.GenericName; /** * * @author Guilhem Legal (Geomatys) */ public class CstlMetadatas { // /** // * Create a default metadata for OGC service. // * // * @param serviceIdentifier the identifier of the service. // * @param serviceType the OGC type of the service (WMS, SOS, WFS, ...) // * @param cstlURL the current URL of the service. // * @param serviceInfo Information about the service. // * // * @return DefaultMetadata a new metadata for the service with given identifier. // */ // public static DefaultMetadata defaultServiceMetadata(final String serviceIdentifier, final String serviceType, final String cstlURL, final Details serviceInfo) { // final String serviceID = getMetadataIdForService(serviceIdentifier, serviceType); // final DefaultMetadata metadata = defaultServiceMetadata(serviceID, serviceInfo); // // // add specific service part // final MetadataFeeder feeder = new MetadataFeeder(metadata); // final String serviceURL = cstlURL + "/WS/" + serviceType.toLowerCase() + '/' + serviceIdentifier; // feeder.feedService(serviceInfo); // feeder.addServiceInformation(serviceType, serviceURL); // feeder.setServiceInstanceName(serviceIdentifier); // return metadata; // } public static void updateServiceMetadataURL(final String serviceIdentifier, final String serviceType, final String cstlURL, final DefaultMetadata metadata) { final MetadataFeeder feeder = new MetadataFeeder(metadata); final String serviceURL = cstlURL + "/WS/" + serviceType.toLowerCase() + '/' + serviceIdentifier; feeder.updateServiceURL(serviceURL); } // public static void updateServiceMetadataLayer(final DefaultMetadata metadata, final List<String> layerIds) { // final MetadataFeeder feeder = new MetadataFeeder(metadata); // feeder.setServiceMetadataIdForData(layerIds); // } // public static void addServiceMetadataLayer(final DefaultMetadata metadata, final String layerId) { // final MetadataFeeder feeder = new MetadataFeeder(metadata); // feeder.addServiceMetadataIdForData(layerId); // } // public static String getMetadataIdForService(final String serviceName, final String serviceType){ // ArgumentChecks.ensureNonNull("serviceName", serviceName); // ArgumentChecks.ensureNonNull("serviceType", serviceType); // return serviceType + "_" + serviceName; // } // public static String getMetadataIdForProvider(final String providerId){ // ArgumentChecks.ensureNonNull("providerId", providerId); // return PROVIDER.getPrefix()+ '_' + providerId; // } public static String getMetadataIdForData(final String providerId, final GenericName dataName){ ArgumentChecks.ensureNonNull("dataName", dataName); ArgumentChecks.ensureNonNull("providerId", providerId); return providerId + '_' + dataName.tip().toString(); // TODO namespace? } public static String getMetadataIdForDataset(final String providerId){ ArgumentChecks.ensureNonNull("providerId", providerId); return providerId; } // public static String getMetadataIdForLayer(final String dataName){ // ArgumentChecks.ensureNonNull("dataName", dataName); // return DATA.getPrefix()+ '_' + dataName; // } // /** // * Create a default metadata for the given data. // * // * @param metadataId the identifier of the metadata to create. // * @param serviceInfo // * // * @return A new {@link DefaultMetadata}. ISO_19115 compliant. // */ // private static DefaultMetadata defaultServiceMetadata(final String metadataId, final Details serviceInfo) { // // ArgumentChecks.ensureNonNull("serviceInfo", serviceInfo); // ArgumentChecks.ensureNonNull("metadataId", metadataId); // final DefaultMetadata metadata = new DefaultMetadata(); // final MetadataFeeder feeder = new MetadataFeeder(metadata); // final Date creationDate = new Date(); // // // create the Service part // feeder.getServiceIdentification(); // feeder.setTitle(serviceInfo.getName()); // feeder.setCitationIdentifier(metadataId); // feeder.setCreationDate(creationDate); // // // Fills metadata with generic values // metadata.setFileIdentifier(metadataId); // metadata.setDateStamp(creationDate); // // return metadata; // } }