Search in sources :

Example 1 with Codelist

use of de.ii.xtraplatform.codelists.domain.Codelist in project ldproxy by interactive-instruments.

the class FeaturesFormatHtml method onStartup.

@Override
public ValidationResult onStartup(OgcApi api, MODE apiValidation) {
    // no additional operational checks for now, only validation; we can stop, if no validation is requested
    if (apiValidation == MODE.NONE)
        return ValidationResult.of();
    ImmutableValidationResult.Builder builder = ImmutableValidationResult.builder().mode(apiValidation);
    Map<String, FeatureSchema> featureSchemas = providers.getFeatureSchemas(api.getData());
    // get HTML configurations to process
    Map<String, FeaturesHtmlConfiguration> htmlConfigurationMap = api.getData().getCollections().entrySet().stream().map(entry -> {
        final FeatureTypeConfigurationOgcApi collectionData = entry.getValue();
        final FeaturesHtmlConfiguration config = collectionData.getExtension(FeaturesHtmlConfiguration.class).orElse(null);
        if (Objects.isNull(config))
            return null;
        return new AbstractMap.SimpleImmutableEntry<>(entry.getKey(), config);
    }).filter(Objects::nonNull).collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));
    Map<String, Collection<String>> keyMap = htmlConfigurationMap.entrySet().stream().map(entry -> new AbstractMap.SimpleImmutableEntry<>(entry.getKey(), entry.getValue().getTransformations().keySet())).collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));
    for (Map.Entry<String, Collection<String>> stringCollectionEntry : featuresCoreValidator.getInvalidPropertyKeys(keyMap, featureSchemas).entrySet()) {
        for (String property : stringCollectionEntry.getValue()) {
            builder.addStrictErrors(MessageFormat.format("A transformation for property ''{0}'' in collection ''{1}'' is invalid, because the property was not found in the provider schema.", property, stringCollectionEntry.getKey()));
        }
    }
    Set<String> codelists = entityRegistry.getEntitiesForType(Codelist.class).stream().map(Codelist::getId).collect(Collectors.toUnmodifiableSet());
    for (Map.Entry<String, FeaturesHtmlConfiguration> entry : htmlConfigurationMap.entrySet()) {
        String collectionId = entry.getKey();
        for (Map.Entry<String, List<PropertyTransformation>> entry2 : entry.getValue().getTransformations().entrySet()) {
            String property = entry2.getKey();
            for (PropertyTransformation transformation : entry2.getValue()) {
                builder = transformation.validate(builder, collectionId, property, codelists);
            }
        }
    }
    return builder.build();
}
Also used : ImmutableApiMediaTypeContent(de.ii.ogcapi.foundation.domain.ImmutableApiMediaTypeContent) MustacheRenderer(de.ii.xtraplatform.web.domain.MustacheRenderer) URISyntaxException(java.net.URISyntaxException) Link(de.ii.ogcapi.foundation.domain.Link) ImmutableValidationResult(de.ii.xtraplatform.store.domain.entities.ImmutableValidationResult) MODE(de.ii.xtraplatform.store.domain.entities.ValidationResult.MODE) ApiMediaType(de.ii.ogcapi.foundation.domain.ApiMediaType) ImmutableApiMediaType(de.ii.ogcapi.foundation.domain.ImmutableApiMediaType) MediaType(javax.ws.rs.core.MediaType) Builder(de.ii.xtraplatform.features.domain.transform.ImmutablePropertyTransformation.Builder) Locale(java.util.Locale) Map(java.util.Map) URI(java.net.URI) FeatureSchema(de.ii.xtraplatform.features.domain.FeatureSchema) HtmlConfiguration(de.ii.ogcapi.html.domain.HtmlConfiguration) WithTransformationsApplied(de.ii.xtraplatform.features.domain.transform.WithTransformationsApplied) ApiMediaTypeContent(de.ii.ogcapi.foundation.domain.ApiMediaTypeContent) FeaturesCoreProviders(de.ii.ogcapi.features.core.domain.FeaturesCoreProviders) ImmutableMap(com.google.common.collect.ImmutableMap) FeatureTokenEncoder(de.ii.xtraplatform.features.domain.FeatureTokenEncoder) Collection(java.util.Collection) OgcApi(de.ii.ogcapi.foundation.domain.OgcApi) Codelist(de.ii.xtraplatform.codelists.domain.Codelist) Set(java.util.Set) Collectors(java.util.stream.Collectors) PropertyTransformation(de.ii.xtraplatform.features.domain.transform.PropertyTransformation) Objects(java.util.Objects) MapClient(de.ii.ogcapi.html.domain.MapClient) List(java.util.List) StringTemplateFilters(de.ii.xtraplatform.strings.domain.StringTemplateFilters) StringSchema(io.swagger.v3.oas.models.media.StringSchema) OgcApiDataV2(de.ii.ogcapi.foundation.domain.OgcApiDataV2) Entry(java.util.Map.Entry) Optional(java.util.Optional) FeaturesCoreValidation(de.ii.ogcapi.features.core.domain.FeaturesCoreValidation) FeatureTypeConfigurationOgcApi(de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi) EntityRegistry(de.ii.xtraplatform.store.domain.entities.EntityRegistry) ServicesContext(de.ii.xtraplatform.services.domain.ServicesContext) ItemTypeSpecificConformanceClass(de.ii.ogcapi.features.core.domain.ItemTypeSpecificConformanceClass) ExtensionConfiguration(de.ii.ogcapi.foundation.domain.ExtensionConfiguration) PropertyTransformations(de.ii.xtraplatform.features.domain.transform.PropertyTransformations) SimpleImmutableEntry(java.util.AbstractMap.SimpleImmutableEntry) Singleton(javax.inject.Singleton) AutoBind(com.github.azahnen.dagger.annotations.AutoBind) POSITION(de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration.POSITION) MessageFormat(java.text.MessageFormat) Inject(javax.inject.Inject) ImmutableList(com.google.common.collect.ImmutableList) ValidationResult(de.ii.xtraplatform.store.domain.entities.ValidationResult) Schema(io.swagger.v3.oas.models.media.Schema) NavigationDTO(de.ii.ogcapi.html.domain.NavigationDTO) FeaturesHtmlConfiguration(de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration) FeatureFormatExtension(de.ii.ogcapi.features.core.domain.FeatureFormatExtension) I18n(de.ii.ogcapi.foundation.domain.I18n) URICustomizer(de.ii.ogcapi.foundation.domain.URICustomizer) FeaturesCoreConfiguration(de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration) AbstractMap(java.util.AbstractMap) DEFAULT_FLATTENING_SEPARATOR(de.ii.ogcapi.features.core.domain.SchemaGeneratorFeatureOpenApi.DEFAULT_FLATTENING_SEPARATOR) FeatureTransformationContext(de.ii.ogcapi.features.core.domain.FeatureTransformationContext) Metadata(de.ii.ogcapi.foundation.domain.Metadata) Comparator(java.util.Comparator) Codelist(de.ii.xtraplatform.codelists.domain.Codelist) ImmutableValidationResult(de.ii.xtraplatform.store.domain.entities.ImmutableValidationResult) FeaturesHtmlConfiguration(de.ii.ogcapi.features.html.domain.FeaturesHtmlConfiguration) FeatureTypeConfigurationOgcApi(de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi) SimpleImmutableEntry(java.util.AbstractMap.SimpleImmutableEntry) PropertyTransformation(de.ii.xtraplatform.features.domain.transform.PropertyTransformation) FeatureSchema(de.ii.xtraplatform.features.domain.FeatureSchema) Collection(java.util.Collection) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap) AbstractMap(java.util.AbstractMap)

Example 2 with Codelist

use of de.ii.xtraplatform.codelists.domain.Codelist in project ldproxy by interactive-instruments.

the class FeaturesFormatGeoJson method onStartup.

@Override
public ValidationResult onStartup(OgcApi api, MODE apiValidation) {
    // no additional operational checks for now, only validation; we can stop, if no validation is requested
    if (apiValidation == MODE.NONE)
        return ValidationResult.of();
    ImmutableValidationResult.Builder builder = ImmutableValidationResult.builder().mode(apiValidation);
    Map<String, FeatureSchema> featureSchemas = providers.getFeatureSchemas(api.getData());
    // get GeoJSON configurations to process
    Map<String, GeoJsonConfiguration> geoJsonConfigurationMap = api.getData().getCollections().entrySet().stream().map(entry -> {
        final FeatureTypeConfigurationOgcApi collectionData = entry.getValue();
        final GeoJsonConfiguration config = collectionData.getExtension(GeoJsonConfiguration.class).orElse(null);
        if (Objects.isNull(config))
            return null;
        return new AbstractMap.SimpleImmutableEntry<>(entry.getKey(), config);
    }).filter(Objects::nonNull).collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));
    for (Map.Entry<String, GeoJsonConfiguration> entry : geoJsonConfigurationMap.entrySet()) {
        String collectionId = entry.getKey();
        GeoJsonConfiguration config = entry.getValue();
        if (config.getNestedObjectStrategy() == GeoJsonConfiguration.NESTED_OBJECTS.FLATTEN && config.getMultiplicityStrategy() != GeoJsonConfiguration.MULTIPLICITY.SUFFIX) {
            builder.addStrictErrors(MessageFormat.format("The GeoJSON Nested Object Strategy ''FLATTEN'' in collection ''{0}'' cannot be combined with the Multiplicity Strategy ''{1}''.", collectionId, config.getMultiplicityStrategy()));
        } else if (config.getNestedObjectStrategy() == GeoJsonConfiguration.NESTED_OBJECTS.NEST && config.getMultiplicityStrategy() != GeoJsonConfiguration.MULTIPLICITY.ARRAY) {
            builder.addStrictErrors(MessageFormat.format("The GeoJSON Nested Object Strategy ''FLATTEN'' in collection ''{0}'' cannot be combined with the Multiplicity Strategy ''{1}''.", collectionId, config.getMultiplicityStrategy()));
        }
        List<String> separators = ImmutableList.of(".", "_", ":", "/");
        if (!separators.contains(config.getSeparator())) {
            builder.addStrictErrors(MessageFormat.format("The separator ''{0}'' in collection ''{1}'' is invalid, it must be one of {2}.", config.getSeparator(), collectionId, separators));
        }
    }
    Map<String, Collection<String>> keyMap = geoJsonConfigurationMap.entrySet().stream().map(entry -> new AbstractMap.SimpleImmutableEntry<>(entry.getKey(), entry.getValue().getTransformations().keySet())).collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));
    for (Map.Entry<String, Collection<String>> stringCollectionEntry : featuresCoreValidator.getInvalidPropertyKeys(keyMap, featureSchemas).entrySet()) {
        for (String property : stringCollectionEntry.getValue()) {
            builder.addStrictErrors(MessageFormat.format("A transformation for property ''{0}'' in collection ''{1}'' is invalid, because the property was not found in the provider schema.", property, stringCollectionEntry.getKey()));
        }
    }
    Set<String> codelists = entityRegistry.getEntitiesForType(Codelist.class).stream().map(Codelist::getId).collect(Collectors.toUnmodifiableSet());
    for (Map.Entry<String, GeoJsonConfiguration> entry : geoJsonConfigurationMap.entrySet()) {
        String collectionId = entry.getKey();
        for (Map.Entry<String, List<PropertyTransformation>> entry2 : entry.getValue().getTransformations().entrySet()) {
            String property = entry2.getKey();
            for (PropertyTransformation transformation : entry2.getValue()) {
                builder = transformation.validate(builder, collectionId, property, codelists);
            }
        }
    }
    return builder.build();
}
Also used : ImmutableApiMediaTypeContent(de.ii.ogcapi.foundation.domain.ImmutableApiMediaTypeContent) ImmutableValidationResult(de.ii.xtraplatform.store.domain.entities.ImmutableValidationResult) MODE(de.ii.xtraplatform.store.domain.entities.ValidationResult.MODE) CollectionsConfiguration(de.ii.ogcapi.collections.domain.CollectionsConfiguration) ApiMediaType(de.ii.ogcapi.foundation.domain.ApiMediaType) ImmutableApiMediaType(de.ii.ogcapi.foundation.domain.ImmutableApiMediaType) MediaType(javax.ws.rs.core.MediaType) GeoJsonWriterRegistry(de.ii.ogcapi.features.geojson.domain.GeoJsonWriterRegistry) Locale(java.util.Locale) Map(java.util.Map) SchemaGeneratorCollectionOpenApi(de.ii.ogcapi.features.core.domain.SchemaGeneratorCollectionOpenApi) SchemaGeneratorOpenApi(de.ii.ogcapi.features.core.domain.SchemaGeneratorOpenApi) GeoJsonWriter(de.ii.ogcapi.features.geojson.domain.GeoJsonWriter) FeatureSchema(de.ii.xtraplatform.features.domain.FeatureSchema) ApiMediaTypeContent(de.ii.ogcapi.foundation.domain.ApiMediaTypeContent) FeaturesCoreProviders(de.ii.ogcapi.features.core.domain.FeaturesCoreProviders) ImmutableMap(com.google.common.collect.ImmutableMap) ImmutableFeatureTransformationContextGeoJson(de.ii.ogcapi.features.geojson.domain.ImmutableFeatureTransformationContextGeoJson) FeatureTokenEncoder(de.ii.xtraplatform.features.domain.FeatureTokenEncoder) Collection(java.util.Collection) OgcApi(de.ii.ogcapi.foundation.domain.OgcApi) Codelist(de.ii.xtraplatform.codelists.domain.Codelist) HttpMethods(de.ii.ogcapi.foundation.domain.HttpMethods) Set(java.util.Set) Collectors(java.util.stream.Collectors) PropertyTransformation(de.ii.xtraplatform.features.domain.transform.PropertyTransformation) Objects(java.util.Objects) List(java.util.List) OgcApiDataV2(de.ii.ogcapi.foundation.domain.OgcApiDataV2) Optional(java.util.Optional) ObjectSchema(io.swagger.v3.oas.models.media.ObjectSchema) FeaturesCoreValidation(de.ii.ogcapi.features.core.domain.FeaturesCoreValidation) FeatureTypeConfigurationOgcApi(de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi) EntityRegistry(de.ii.xtraplatform.store.domain.entities.EntityRegistry) ItemTypeSpecificConformanceClass(de.ii.ogcapi.features.core.domain.ItemTypeSpecificConformanceClass) ExtensionConfiguration(de.ii.ogcapi.foundation.domain.ExtensionConfiguration) Singleton(javax.inject.Singleton) AutoBind(com.github.azahnen.dagger.annotations.AutoBind) MessageFormat(java.text.MessageFormat) Inject(javax.inject.Inject) ImmutableList(com.google.common.collect.ImmutableList) ValidationResult(de.ii.xtraplatform.store.domain.entities.ValidationResult) FeatureEncoderGeoJson(de.ii.ogcapi.features.geojson.domain.FeatureEncoderGeoJson) Schema(io.swagger.v3.oas.models.media.Schema) ImmutableSortedSet(com.google.common.collect.ImmutableSortedSet) FeatureFormatExtension(de.ii.ogcapi.features.core.domain.FeatureFormatExtension) FeaturesCoreConfiguration(de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration) GeoJsonConfiguration(de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration) AbstractMap(java.util.AbstractMap) FeatureTransformationContext(de.ii.ogcapi.features.core.domain.FeatureTransformationContext) Comparator(java.util.Comparator) GeoJsonConfiguration(de.ii.ogcapi.features.geojson.domain.GeoJsonConfiguration) Codelist(de.ii.xtraplatform.codelists.domain.Codelist) ImmutableValidationResult(de.ii.xtraplatform.store.domain.entities.ImmutableValidationResult) FeatureTypeConfigurationOgcApi(de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi) PropertyTransformation(de.ii.xtraplatform.features.domain.transform.PropertyTransformation) FeatureSchema(de.ii.xtraplatform.features.domain.FeatureSchema) Collection(java.util.Collection) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap) AbstractMap(java.util.AbstractMap)

Example 3 with Codelist

use of de.ii.xtraplatform.codelists.domain.Codelist in project ldproxy by interactive-instruments.

the class EndpointFeatures method onStartup.

@Override
public ValidationResult onStartup(OgcApi api, MODE apiValidation) {
    ValidationResult result = super.onStartup(api, apiValidation);
    // no additional operational checks for now, only validation; we can stop, if no validation is requested
    if (apiValidation == MODE.NONE)
        return result;
    ImmutableValidationResult.Builder builder = ImmutableValidationResult.builder().from(result).mode(apiValidation);
    Map<String, FeatureSchema> featureSchemas = providers.getFeatureSchemas(api.getData());
    List<String> invalidCollections = featuresCoreValidator.getCollectionsWithoutType(api.getData(), featureSchemas);
    for (String invalidCollection : invalidCollections) {
        builder.addStrictErrors(MessageFormat.format("The Collection ''{0}'' is invalid, because its feature type was not found in the provider schema.", invalidCollection));
    }
    // get Features Core configurations to process
    Map<String, FeaturesCoreConfiguration> coreConfigs = api.getData().getCollections().entrySet().stream().map(entry -> {
        final FeatureTypeConfigurationOgcApi collectionData = entry.getValue();
        final FeaturesCoreConfiguration config = collectionData.getExtension(FeaturesCoreConfiguration.class).orElse(null);
        if (Objects.isNull(config))
            return null;
        return new AbstractMap.SimpleImmutableEntry<>(entry.getKey(), config);
    }).filter(Objects::nonNull).collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));
    Map<String, Collection<String>> transformationKeys = coreConfigs.entrySet().stream().map(entry -> new AbstractMap.SimpleImmutableEntry<>(entry.getKey(), entry.getValue().getTransformations().keySet())).collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));
    for (Map.Entry<String, Collection<String>> stringCollectionEntry : featuresCoreValidator.getInvalidPropertyKeys(transformationKeys, featureSchemas).entrySet()) {
        for (String property : stringCollectionEntry.getValue()) {
            builder.addStrictErrors(MessageFormat.format("A transformation for property ''{0}'' in collection ''{1}'' is invalid, because the property was not found in the provider schema.", property, stringCollectionEntry.getKey()));
        }
    }
    transformationKeys = coreConfigs.entrySet().stream().map(entry -> new AbstractMap.SimpleImmutableEntry<>(entry.getKey(), entry.getValue().getQueryables().orElse(FeaturesCollectionQueryables.of()).getAll())).collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, Map.Entry::getValue));
    for (Map.Entry<String, Collection<String>> stringCollectionEntry : featuresCoreValidator.getInvalidPropertyKeys(transformationKeys, featureSchemas).entrySet()) {
        for (String property : stringCollectionEntry.getValue()) {
            builder.addStrictErrors(MessageFormat.format("A queryable ''{0}'' in collection ''{1}'' is invalid, because the property was not found in the provider schema.", property, stringCollectionEntry.getKey()));
        }
    }
    for (Map.Entry<String, FeaturesCoreConfiguration> entry : coreConfigs.entrySet()) {
        String collectionId = entry.getKey();
        FeaturesCoreConfiguration config = entry.getValue();
        if (config.getMinimumPageSize() < 1) {
            builder.addStrictErrors(MessageFormat.format("The minimum page size ''{0}'' in collection ''{1}'' is invalid, it must be a positive integer.", config.getMinimumPageSize(), collectionId));
        }
        if (config.getMinimumPageSize() > config.getMaximumPageSize()) {
            builder.addStrictErrors(MessageFormat.format("The minimum page size ''{0}'' in collection ''{1}'' is invalid, it cannot be greater than the maximum page size ''{2}''.", config.getMinimumPageSize(), collectionId, config.getMaximumPageSize()));
        }
        if (config.getMinimumPageSize() > config.getDefaultPageSize()) {
            builder.addStrictErrors(MessageFormat.format("The minimum page size ''{0}'' in collection ''{1}'' is invalid, it cannot be greater than the default page size ''{2}''.", config.getMinimumPageSize(), collectionId, config.getDefaultPageSize()));
        }
        if (config.getMaximumPageSize() < config.getDefaultPageSize()) {
            builder.addStrictErrors(MessageFormat.format("The maxmimum page size ''{0}'' in collection ''{1}'' is invalid, it must be at least the default page size ''{2}''.", config.getMaximumPageSize(), collectionId, config.getDefaultPageSize()));
        }
    }
    Set<String> codelists = entityRegistry.getEntitiesForType(Codelist.class).stream().map(Codelist::getId).collect(Collectors.toUnmodifiableSet());
    for (Map.Entry<String, FeaturesCoreConfiguration> entry : coreConfigs.entrySet()) {
        String collectionId = entry.getKey();
        for (Map.Entry<String, List<PropertyTransformation>> entry2 : entry.getValue().getTransformations().entrySet()) {
            String property = entry2.getKey();
            for (PropertyTransformation transformation : entry2.getValue()) {
                builder = transformation.validate(builder, collectionId, property, codelists);
            }
        }
    }
    return builder.build();
}
Also used : User(de.ii.xtraplatform.auth.domain.User) Path(javax.ws.rs.Path) LoggerFactory(org.slf4j.LoggerFactory) ImmutableValidationResult(de.ii.xtraplatform.store.domain.entities.ImmutableValidationResult) MODE(de.ii.xtraplatform.store.domain.entities.ValidationResult.MODE) EndpointSubCollection(de.ii.ogcapi.collections.domain.EndpointSubCollection) Map(java.util.Map) ImmutableOgcApiResourceData(de.ii.ogcapi.collections.domain.ImmutableOgcApiResourceData) SchemaGeneratorOpenApi(de.ii.ogcapi.features.core.domain.SchemaGeneratorOpenApi) ExtensionRegistry(de.ii.ogcapi.foundation.domain.ExtensionRegistry) ApiOperation(de.ii.ogcapi.foundation.domain.ApiOperation) FeatureSchema(de.ii.xtraplatform.features.domain.FeatureSchema) ApiRequestContext(de.ii.ogcapi.foundation.domain.ApiRequestContext) ImmutableQueryInputFeature(de.ii.ogcapi.features.core.domain.ImmutableQueryInputFeature) Context(javax.ws.rs.core.Context) FeaturesCoreProviders(de.ii.ogcapi.features.core.domain.FeaturesCoreProviders) ImmutableMap(com.google.common.collect.ImmutableMap) Collection(java.util.Collection) OgcApi(de.ii.ogcapi.foundation.domain.OgcApi) Codelist(de.ii.xtraplatform.codelists.domain.Codelist) HttpMethods(de.ii.ogcapi.foundation.domain.HttpMethods) Set(java.util.Set) Collectors(java.util.stream.Collectors) NotFoundException(javax.ws.rs.NotFoundException) ImmutableApiEndpointDefinition(de.ii.ogcapi.foundation.domain.ImmutableApiEndpointDefinition) PropertyTransformation(de.ii.xtraplatform.features.domain.transform.PropertyTransformation) Objects(java.util.Objects) ApiEndpointDefinition(de.ii.ogcapi.foundation.domain.ApiEndpointDefinition) List(java.util.List) ImmutableQueryInputFeatures(de.ii.ogcapi.features.core.domain.ImmutableQueryInputFeatures) Stream(java.util.stream.Stream) Response(javax.ws.rs.core.Response) ImmutableQueryParameterTemplateQueryable(de.ii.ogcapi.collections.domain.ImmutableQueryParameterTemplateQueryable) OgcApiDataV2(de.ii.ogcapi.foundation.domain.OgcApiDataV2) Optional(java.util.Optional) FormatExtension(de.ii.ogcapi.foundation.domain.FormatExtension) UriInfo(javax.ws.rs.core.UriInfo) FeaturesCoreValidation(de.ii.ogcapi.features.core.domain.FeaturesCoreValidation) FeatureTypeConfigurationOgcApi(de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi) EntityRegistry(de.ii.xtraplatform.store.domain.entities.EntityRegistry) FeatureQuery(de.ii.xtraplatform.features.domain.FeatureQuery) PathParam(javax.ws.rs.PathParam) ExtensionConfiguration(de.ii.ogcapi.foundation.domain.ExtensionConfiguration) GET(javax.ws.rs.GET) OgcApiPathParameter(de.ii.ogcapi.foundation.domain.OgcApiPathParameter) Auth(io.dropwizard.auth.Auth) Singleton(javax.inject.Singleton) AutoBind(com.github.azahnen.dagger.annotations.AutoBind) MessageFormat(java.text.MessageFormat) FeaturesQuery(de.ii.ogcapi.features.core.domain.FeaturesQuery) Inject(javax.inject.Inject) ImmutableList(com.google.common.collect.ImmutableList) ValidationResult(de.ii.xtraplatform.store.domain.entities.ValidationResult) Schema(io.swagger.v3.oas.models.media.Schema) OgcApiQueryParameter(de.ii.ogcapi.foundation.domain.OgcApiQueryParameter) Logger(org.slf4j.Logger) FeatureFormatExtension(de.ii.ogcapi.features.core.domain.FeatureFormatExtension) FeaturesCollectionQueryables(de.ii.ogcapi.features.core.domain.FeaturesCollectionQueryables) ParameterExtension(de.ii.ogcapi.foundation.domain.ParameterExtension) FeaturesCoreConfiguration(de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration) AbstractMap(java.util.AbstractMap) FeaturesCoreQueriesHandler(de.ii.ogcapi.features.core.domain.FeaturesCoreQueriesHandler) Comparator(java.util.Comparator) Codelist(de.ii.xtraplatform.codelists.domain.Codelist) ImmutableValidationResult(de.ii.xtraplatform.store.domain.entities.ImmutableValidationResult) ImmutableValidationResult(de.ii.xtraplatform.store.domain.entities.ImmutableValidationResult) ValidationResult(de.ii.xtraplatform.store.domain.entities.ValidationResult) AbstractMap(java.util.AbstractMap) FeatureTypeConfigurationOgcApi(de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi) PropertyTransformation(de.ii.xtraplatform.features.domain.transform.PropertyTransformation) FeatureSchema(de.ii.xtraplatform.features.domain.FeatureSchema) FeaturesCoreConfiguration(de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) EndpointSubCollection(de.ii.ogcapi.collections.domain.EndpointSubCollection) Collection(java.util.Collection) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap) AbstractMap(java.util.AbstractMap)

Aggregations

AutoBind (com.github.azahnen.dagger.annotations.AutoBind)3 ImmutableList (com.google.common.collect.ImmutableList)3 ImmutableMap (com.google.common.collect.ImmutableMap)3 FeatureFormatExtension (de.ii.ogcapi.features.core.domain.FeatureFormatExtension)3 FeaturesCoreConfiguration (de.ii.ogcapi.features.core.domain.FeaturesCoreConfiguration)3 FeaturesCoreProviders (de.ii.ogcapi.features.core.domain.FeaturesCoreProviders)3 FeaturesCoreValidation (de.ii.ogcapi.features.core.domain.FeaturesCoreValidation)3 ExtensionConfiguration (de.ii.ogcapi.foundation.domain.ExtensionConfiguration)3 FeatureTypeConfigurationOgcApi (de.ii.ogcapi.foundation.domain.FeatureTypeConfigurationOgcApi)3 OgcApi (de.ii.ogcapi.foundation.domain.OgcApi)3 OgcApiDataV2 (de.ii.ogcapi.foundation.domain.OgcApiDataV2)3 Codelist (de.ii.xtraplatform.codelists.domain.Codelist)3 FeatureSchema (de.ii.xtraplatform.features.domain.FeatureSchema)3 PropertyTransformation (de.ii.xtraplatform.features.domain.transform.PropertyTransformation)3 EntityRegistry (de.ii.xtraplatform.store.domain.entities.EntityRegistry)3 ImmutableValidationResult (de.ii.xtraplatform.store.domain.entities.ImmutableValidationResult)3 ValidationResult (de.ii.xtraplatform.store.domain.entities.ValidationResult)3 MODE (de.ii.xtraplatform.store.domain.entities.ValidationResult.MODE)3 FeatureTransformationContext (de.ii.ogcapi.features.core.domain.FeatureTransformationContext)2 SchemaGeneratorOpenApi (de.ii.ogcapi.features.core.domain.SchemaGeneratorOpenApi)2