Search in sources :

Example 36 with Value

use of org.springframework.beans.factory.annotation.Value in project vorto by eclipse.

the class ModelRepositoryController method getModelContentForTargetPlatform.

@ApiOperation(value = "Returns the model content including target platform specific attributes")
@ApiResponses(value = { @ApiResponse(code = 400, message = "Wrong input"), @ApiResponse(code = 404, message = "Model not found") })
@RequestMapping(value = "/content/{namespace}/{name}/{version:.+}/mapping/{targetplatformKey}", method = RequestMethod.GET)
public AbstractModel getModelContentForTargetPlatform(@ApiParam(value = "The namespace of vorto model, e.g. com.mycompany", required = true) @PathVariable final String namespace, @ApiParam(value = "The name of vorto model, e.g. NewInfomodel", required = true) @PathVariable final String name, @ApiParam(value = "The version of vorto model, e.g. 1.0.0", required = true) @PathVariable final String version, @ApiParam(value = "The key of the targetplatform, e.g. lwm2m", required = true) @PathVariable final String targetplatformKey) {
    List<ModelInfo> mappingResource = modelRepository.getMappingModelsForTargetPlatform(new ModelId(name, namespace, version), targetplatformKey);
    if (!mappingResource.isEmpty()) {
        byte[] mappingContentZip = createZipWithAllDependencies(mappingResource.get(0).getId(), ContentType.DSL);
        IModelWorkspace workspace = IModelWorkspace.newReader().addZip(new ZipInputStream(new ByteArrayInputStream(mappingContentZip))).read();
        MappingModel mappingModel = (MappingModel) workspace.get().stream().filter(p -> p instanceof MappingModel).findFirst().get();
        byte[] modelContent = createZipWithAllDependencies(new ModelId(name, namespace, version), ContentType.DSL);
        workspace = IModelWorkspace.newReader().addZip(new ZipInputStream(new ByteArrayInputStream(modelContent))).read();
        return ModelDtoFactory.createResource(workspace.get().stream().filter(p -> p.getName().equals(name)).findFirst().get(), Optional.of(mappingModel));
    } else {
        return getModelContent(namespace, name, version);
    }
}
Also used : ZipOutputStream(java.util.zip.ZipOutputStream) PathVariable(org.springframework.web.bind.annotation.PathVariable) RequestParam(org.springframework.web.bind.annotation.RequestParam) ZipInputStream(java.util.zip.ZipInputStream) ByteArrayOutputStream(java.io.ByteArrayOutputStream) URLDecoder(java.net.URLDecoder) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) MappingModel(org.eclipse.vorto.core.api.model.mapping.MappingModel) Autowired(org.springframework.beans.factory.annotation.Autowired) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ApiParam(io.swagger.annotations.ApiParam) ApiResponses(io.swagger.annotations.ApiResponses) ModelInfo(org.eclipse.vorto.repository.api.ModelInfo) IModelRepository(org.eclipse.vorto.repository.core.IModelRepository) Value(org.springframework.beans.factory.annotation.Value) Logger(org.apache.log4j.Logger) ApiOperation(io.swagger.annotations.ApiOperation) AbstractRepositoryController(org.eclipse.vorto.repository.web.AbstractRepositoryController) ByteArrayInputStream(java.io.ByteArrayInputStream) AbstractModel(org.eclipse.vorto.repository.api.AbstractModel) Api(io.swagger.annotations.Api) ZipEntry(java.util.zip.ZipEntry) ModelId(org.eclipse.vorto.repository.api.ModelId) UploadTooLargeException(org.eclipse.vorto.repository.web.core.exceptions.UploadTooLargeException) ContentType(org.eclipse.vorto.repository.core.IModelRepository.ContentType) HttpServletResponse(javax.servlet.http.HttpServletResponse) RequestMethod(org.springframework.web.bind.annotation.RequestMethod) IOException(java.io.IOException) Collectors(java.util.stream.Collectors) RestController(org.springframework.web.bind.annotation.RestController) ModelNotFoundException(org.eclipse.vorto.repository.api.exception.ModelNotFoundException) IModelWorkspace(org.eclipse.vorto.server.commons.reader.IModelWorkspace) Objects(java.util.Objects) IOUtils(org.apache.commons.io.IOUtils) List(java.util.List) ApiResponse(io.swagger.annotations.ApiResponse) Optional(java.util.Optional) MultipartFile(org.springframework.web.multipart.MultipartFile) UnsupportedEncodingException(java.io.UnsupportedEncodingException) ModelInfo(org.eclipse.vorto.repository.api.ModelInfo) ZipInputStream(java.util.zip.ZipInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) ModelId(org.eclipse.vorto.repository.api.ModelId) IModelWorkspace(org.eclipse.vorto.server.commons.reader.IModelWorkspace) MappingModel(org.eclipse.vorto.core.api.model.mapping.MappingModel) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 37 with Value

use of org.springframework.beans.factory.annotation.Value in project vorto by eclipse.

the class ModelRepositoryController method getModelContent.

@ApiOperation(value = "Returns the model content")
@ApiResponses(value = { @ApiResponse(code = 400, message = "Wrong input"), @ApiResponse(code = 404, message = "Model not found") })
@RequestMapping(value = "/content/{namespace}/{name}/{version:.+}", method = RequestMethod.GET)
public AbstractModel getModelContent(@ApiParam(value = "The namespace of vorto model, e.g. com.mycompany", required = true) @PathVariable final String namespace, @ApiParam(value = "The name of vorto model, e.g. NewInfomodel", required = true) @PathVariable final String name, @ApiParam(value = "The version of vorto model, e.g. 1.0.0", required = true) @PathVariable final String version) {
    byte[] modelContent = createZipWithAllDependencies(new ModelId(name, namespace, version), ContentType.DSL);
    IModelWorkspace workspace = IModelWorkspace.newReader().addZip(new ZipInputStream(new ByteArrayInputStream(modelContent))).read();
    return ModelDtoFactory.createResource(workspace.get().stream().filter(p -> p.getName().equals(name)).findFirst().get(), Optional.empty());
}
Also used : ZipOutputStream(java.util.zip.ZipOutputStream) PathVariable(org.springframework.web.bind.annotation.PathVariable) RequestParam(org.springframework.web.bind.annotation.RequestParam) ZipInputStream(java.util.zip.ZipInputStream) ByteArrayOutputStream(java.io.ByteArrayOutputStream) URLDecoder(java.net.URLDecoder) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize) MappingModel(org.eclipse.vorto.core.api.model.mapping.MappingModel) Autowired(org.springframework.beans.factory.annotation.Autowired) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ApiParam(io.swagger.annotations.ApiParam) ApiResponses(io.swagger.annotations.ApiResponses) ModelInfo(org.eclipse.vorto.repository.api.ModelInfo) IModelRepository(org.eclipse.vorto.repository.core.IModelRepository) Value(org.springframework.beans.factory.annotation.Value) Logger(org.apache.log4j.Logger) ApiOperation(io.swagger.annotations.ApiOperation) AbstractRepositoryController(org.eclipse.vorto.repository.web.AbstractRepositoryController) ByteArrayInputStream(java.io.ByteArrayInputStream) AbstractModel(org.eclipse.vorto.repository.api.AbstractModel) Api(io.swagger.annotations.Api) ZipEntry(java.util.zip.ZipEntry) ModelId(org.eclipse.vorto.repository.api.ModelId) UploadTooLargeException(org.eclipse.vorto.repository.web.core.exceptions.UploadTooLargeException) ContentType(org.eclipse.vorto.repository.core.IModelRepository.ContentType) HttpServletResponse(javax.servlet.http.HttpServletResponse) RequestMethod(org.springframework.web.bind.annotation.RequestMethod) IOException(java.io.IOException) Collectors(java.util.stream.Collectors) RestController(org.springframework.web.bind.annotation.RestController) ModelNotFoundException(org.eclipse.vorto.repository.api.exception.ModelNotFoundException) IModelWorkspace(org.eclipse.vorto.server.commons.reader.IModelWorkspace) Objects(java.util.Objects) IOUtils(org.apache.commons.io.IOUtils) List(java.util.List) ApiResponse(io.swagger.annotations.ApiResponse) Optional(java.util.Optional) MultipartFile(org.springframework.web.multipart.MultipartFile) UnsupportedEncodingException(java.io.UnsupportedEncodingException) ZipInputStream(java.util.zip.ZipInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) ModelId(org.eclipse.vorto.repository.api.ModelId) IModelWorkspace(org.eclipse.vorto.server.commons.reader.IModelWorkspace) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 38 with Value

use of org.springframework.beans.factory.annotation.Value in project spring-data-commons by spring-projects.

the class SpelEvaluatingMethodInterceptor method potentiallyCreateExpressionsForMethodsOnTargetInterface.

/**
 * Eagerly parses {@link Expression} defined on {@link Value} annotations. Returns a map with
 * {@code method.hashCode()} as key and the parsed {@link Expression} or an {@link Collections#emptyMap()} if no
 * {@code Expressions} were found.
 *
 * @param parser must not be {@literal null}.
 * @param targetInterface must not be {@literal null}.
 * @return
 */
private static Map<Integer, Expression> potentiallyCreateExpressionsForMethodsOnTargetInterface(SpelExpressionParser parser, Class<?> targetInterface) {
    Map<Integer, Expression> expressions = new HashMap<>();
    for (Method method : targetInterface.getMethods()) {
        if (!method.isAnnotationPresent(Value.class)) {
            continue;
        }
        Value value = method.getAnnotation(Value.class);
        if (!StringUtils.hasText(value.value())) {
            throw new IllegalStateException(String.format("@Value annotation on %s contains empty expression!", method));
        }
        expressions.put(method.hashCode(), parser.parseExpression(value.value(), PARSER_CONTEXT));
    }
    return Collections.unmodifiableMap(expressions);
}
Also used : Expression(org.springframework.expression.Expression) HashMap(java.util.HashMap) Value(org.springframework.beans.factory.annotation.Value) Method(java.lang.reflect.Method)

Example 39 with Value

use of org.springframework.beans.factory.annotation.Value in project molgenis by molgenis.

the class RestControllerV2 method updateAttribute.

/**
 * @param entityTypeId  The name of the entity to update
 * @param attributeName The name of the attribute to update
 * @param request       EntityCollectionBatchRequestV2
 * @param response      HttpServletResponse
 */
@PutMapping("/{entityTypeId}/{attributeName}")
@ResponseStatus(OK)
public synchronized void updateAttribute(@PathVariable("entityTypeId") String entityTypeId, @PathVariable("attributeName") String attributeName, @RequestBody @Valid EntityCollectionBatchRequestV2 request, HttpServletResponse response) throws Exception {
    final EntityType meta = dataService.getEntityType(entityTypeId);
    if (meta == null) {
        throw createUnknownEntityException(entityTypeId);
    }
    try {
        Attribute attr = meta.getAttribute(attributeName);
        if (attr == null) {
            throw new UnknownAttributeException(meta, attributeName);
        }
        if (attr.isReadOnly()) {
            throw createMolgenisDataAccessExceptionReadOnlyAttribute(entityTypeId, attributeName);
        }
        final List<Entity> entities = request.getEntities().stream().filter(e -> e.size() == 2).map(e -> this.restService.toEntity(meta, e)).collect(toList());
        if (entities.size() != request.getEntities().size()) {
            throw createMolgenisDataExceptionIdentifierAndValue();
        }
        final List<Entity> updatedEntities = new ArrayList<>();
        int count = 0;
        for (Entity entity : entities) {
            Object id = checkForEntityId(entity, count);
            Entity originalEntity = dataService.findOneById(entityTypeId, id);
            if (originalEntity == null) {
                throw createUnknownEntityExceptionNotValidId(id);
            }
            Object value = this.restService.toEntityValue(attr, entity.get(attributeName), id);
            originalEntity.set(attributeName, value);
            updatedEntities.add(originalEntity);
            count++;
        }
        // update all entities
        this.dataService.update(entityTypeId, updatedEntities.stream());
        response.setStatus(HttpServletResponse.SC_OK);
    } catch (Exception e) {
        response.setStatus(HttpServletResponse.SC_NO_CONTENT);
        throw e;
    }
}
Also used : EntityType(org.molgenis.data.meta.model.EntityType) LocaleContextHolder(org.springframework.context.i18n.LocaleContextHolder) ConversionFailedException(org.springframework.core.convert.ConversionFailedException) UriComponentsBuilder(org.springframework.web.util.UriComponentsBuilder) RestService(org.molgenis.data.rest.service.RestService) RepositoryCopier(org.molgenis.data.support.RepositoryCopier) ErrorMessageResponse(org.molgenis.web.ErrorMessageResponse) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) RunAsSystemAspect.runAsSystem(org.molgenis.security.core.runas.RunAsSystemAspect.runAsSystem) PermissionSystemService(org.molgenis.data.security.permission.PermissionSystemService) Attribute(org.molgenis.data.meta.model.Attribute) TEXT_PLAIN_VALUE(org.springframework.http.MediaType.TEXT_PLAIN_VALUE) Valid(javax.validation.Valid) BASE_URI(org.molgenis.data.rest.v2.RestControllerV2.BASE_URI) EntityTypeIdentity(org.molgenis.data.security.EntityTypeIdentity) Collectors.toSet(java.util.stream.Collectors.toSet) LanguageService(org.molgenis.i18n.LanguageService) org.molgenis.data(org.molgenis.data) EntityTypeUtils(org.molgenis.data.support.EntityTypeUtils) Instant(java.time.Instant) EntityType(org.molgenis.data.meta.model.EntityType) String.format(java.lang.String.format) MEDIUM(java.time.format.FormatStyle.MEDIUM) UnexpectedEnumException(org.molgenis.util.UnexpectedEnumException) Stream(java.util.stream.Stream) UserPermissionEvaluator(org.molgenis.security.core.UserPermissionEvaluator) LocalDate(java.time.LocalDate) org.springframework.web.bind.annotation(org.springframework.web.bind.annotation) EntityPager(org.molgenis.data.rest.EntityPager) java.util(java.util) NameValidator(org.molgenis.data.validation.meta.NameValidator) LocalizationService(org.molgenis.data.i18n.LocalizationService) QueryImpl(org.molgenis.data.support.QueryImpl) Lists.transform(com.google.common.collect.Lists.transform) EntityTypePermission(org.molgenis.data.security.EntityTypePermission) Value(org.springframework.beans.factory.annotation.Value) HttpServletRequest(javax.servlet.http.HttpServletRequest) AggregateResult(org.molgenis.data.aggregation.AggregateResult) EntityUtils.getTypedValue(org.molgenis.data.util.EntityUtils.getTypedValue) Objects.requireNonNull(java.util.Objects.requireNonNull) AttributeFilterToFetchConverter.createDefaultAttributeFetch(org.molgenis.data.rest.v2.AttributeFilterToFetchConverter.createDefaultAttributeFetch) Href(org.molgenis.core.ui.data.support.Href) ATTRIBUTE_META_DATA(org.molgenis.data.meta.model.AttributeMetadata.ATTRIBUTE_META_DATA) AttributeType(org.molgenis.data.meta.AttributeType) Logger(org.slf4j.Logger) AggregateQuery(org.molgenis.data.aggregation.AggregateQuery) StringWriter(java.io.StringWriter) HttpServletResponse(javax.servlet.http.HttpServletResponse) IOException(java.io.IOException) MethodArgumentNotValidException(org.springframework.web.bind.MethodArgumentNotValidException) APPLICATION_JSON_VALUE(org.springframework.http.MediaType.APPLICATION_JSON_VALUE) HttpMessageNotReadableException(org.springframework.http.converter.HttpMessageNotReadableException) ErrorMessage(org.molgenis.web.ErrorMessageResponse.ErrorMessage) HttpStatus(org.springframework.http.HttpStatus) Collectors.toList(java.util.stream.Collectors.toList) DateTimeFormatter(java.time.format.DateTimeFormatter) ZonedDateTime.now(java.time.ZonedDateTime.now) Package(org.molgenis.data.meta.model.Package) Transactional(org.springframework.transaction.annotation.Transactional) Attribute(org.molgenis.data.meta.model.Attribute) ConversionFailedException(org.springframework.core.convert.ConversionFailedException) UnexpectedEnumException(org.molgenis.util.UnexpectedEnumException) IOException(java.io.IOException) MethodArgumentNotValidException(org.springframework.web.bind.MethodArgumentNotValidException) HttpMessageNotReadableException(org.springframework.http.converter.HttpMessageNotReadableException)

Example 40 with Value

use of org.springframework.beans.factory.annotation.Value in project molgenis by molgenis.

the class RestControllerV2 method createEntities.

/**
 * Try to create multiple entities in one transaction. If one fails all fails.
 *
 * @param entityTypeId name of the entity where the entities are going to be added.
 * @param request      EntityCollectionCreateRequestV2
 * @param response     HttpServletResponse
 * @return EntityCollectionCreateResponseBodyV2
 */
@Transactional
@PostMapping(value = "/{entityTypeId}", produces = APPLICATION_JSON_VALUE)
public EntityCollectionBatchCreateResponseBodyV2 createEntities(@PathVariable("entityTypeId") String entityTypeId, @RequestBody @Valid EntityCollectionBatchRequestV2 request, HttpServletResponse response) throws Exception {
    final EntityType meta = dataService.getEntityType(entityTypeId);
    if (meta == null) {
        throw createUnknownEntityException(entityTypeId);
    }
    try {
        final List<Entity> entities = request.getEntities().stream().map(e -> this.restService.toEntity(meta, e)).collect(toList());
        final EntityCollectionBatchCreateResponseBodyV2 responseBody = new EntityCollectionBatchCreateResponseBodyV2();
        final List<String> ids = new ArrayList<>();
        // Add all entities
        if (ATTRIBUTE_META_DATA.equals(entityTypeId)) {
            entities.stream().map(attribute -> (Attribute) attribute).forEach(attribute -> dataService.getMeta().addAttribute(attribute));
        } else {
            this.dataService.add(entityTypeId, entities.stream());
        }
        entities.forEach(entity -> {
            restService.updateMappedByEntities(entity);
            String id = entity.getIdValue().toString();
            ids.add(id);
            responseBody.getResources().add(new AutoValue_ResourcesResponseV2(Href.concatEntityHref(RestControllerV2.BASE_URI, entityTypeId, id)));
        });
        responseBody.setLocation(Href.concatEntityCollectionHref(RestControllerV2.BASE_URI, entityTypeId, meta.getIdAttribute().getName(), ids));
        response.setStatus(HttpServletResponse.SC_CREATED);
        return responseBody;
    } catch (Exception e) {
        response.setStatus(HttpServletResponse.SC_NO_CONTENT);
        throw e;
    }
}
Also used : EntityType(org.molgenis.data.meta.model.EntityType) LocaleContextHolder(org.springframework.context.i18n.LocaleContextHolder) ConversionFailedException(org.springframework.core.convert.ConversionFailedException) UriComponentsBuilder(org.springframework.web.util.UriComponentsBuilder) RestService(org.molgenis.data.rest.service.RestService) RepositoryCopier(org.molgenis.data.support.RepositoryCopier) ErrorMessageResponse(org.molgenis.web.ErrorMessageResponse) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) RunAsSystemAspect.runAsSystem(org.molgenis.security.core.runas.RunAsSystemAspect.runAsSystem) PermissionSystemService(org.molgenis.data.security.permission.PermissionSystemService) Attribute(org.molgenis.data.meta.model.Attribute) TEXT_PLAIN_VALUE(org.springframework.http.MediaType.TEXT_PLAIN_VALUE) Valid(javax.validation.Valid) BASE_URI(org.molgenis.data.rest.v2.RestControllerV2.BASE_URI) EntityTypeIdentity(org.molgenis.data.security.EntityTypeIdentity) Collectors.toSet(java.util.stream.Collectors.toSet) LanguageService(org.molgenis.i18n.LanguageService) org.molgenis.data(org.molgenis.data) EntityTypeUtils(org.molgenis.data.support.EntityTypeUtils) Instant(java.time.Instant) EntityType(org.molgenis.data.meta.model.EntityType) String.format(java.lang.String.format) MEDIUM(java.time.format.FormatStyle.MEDIUM) UnexpectedEnumException(org.molgenis.util.UnexpectedEnumException) Stream(java.util.stream.Stream) UserPermissionEvaluator(org.molgenis.security.core.UserPermissionEvaluator) LocalDate(java.time.LocalDate) org.springframework.web.bind.annotation(org.springframework.web.bind.annotation) EntityPager(org.molgenis.data.rest.EntityPager) java.util(java.util) NameValidator(org.molgenis.data.validation.meta.NameValidator) LocalizationService(org.molgenis.data.i18n.LocalizationService) QueryImpl(org.molgenis.data.support.QueryImpl) Lists.transform(com.google.common.collect.Lists.transform) EntityTypePermission(org.molgenis.data.security.EntityTypePermission) Value(org.springframework.beans.factory.annotation.Value) HttpServletRequest(javax.servlet.http.HttpServletRequest) AggregateResult(org.molgenis.data.aggregation.AggregateResult) EntityUtils.getTypedValue(org.molgenis.data.util.EntityUtils.getTypedValue) Objects.requireNonNull(java.util.Objects.requireNonNull) AttributeFilterToFetchConverter.createDefaultAttributeFetch(org.molgenis.data.rest.v2.AttributeFilterToFetchConverter.createDefaultAttributeFetch) Href(org.molgenis.core.ui.data.support.Href) ATTRIBUTE_META_DATA(org.molgenis.data.meta.model.AttributeMetadata.ATTRIBUTE_META_DATA) AttributeType(org.molgenis.data.meta.AttributeType) Logger(org.slf4j.Logger) AggregateQuery(org.molgenis.data.aggregation.AggregateQuery) StringWriter(java.io.StringWriter) HttpServletResponse(javax.servlet.http.HttpServletResponse) IOException(java.io.IOException) MethodArgumentNotValidException(org.springframework.web.bind.MethodArgumentNotValidException) APPLICATION_JSON_VALUE(org.springframework.http.MediaType.APPLICATION_JSON_VALUE) HttpMessageNotReadableException(org.springframework.http.converter.HttpMessageNotReadableException) ErrorMessage(org.molgenis.web.ErrorMessageResponse.ErrorMessage) HttpStatus(org.springframework.http.HttpStatus) Collectors.toList(java.util.stream.Collectors.toList) DateTimeFormatter(java.time.format.DateTimeFormatter) ZonedDateTime.now(java.time.ZonedDateTime.now) Package(org.molgenis.data.meta.model.Package) Transactional(org.springframework.transaction.annotation.Transactional) Attribute(org.molgenis.data.meta.model.Attribute) ConversionFailedException(org.springframework.core.convert.ConversionFailedException) UnexpectedEnumException(org.molgenis.util.UnexpectedEnumException) IOException(java.io.IOException) MethodArgumentNotValidException(org.springframework.web.bind.MethodArgumentNotValidException) HttpMessageNotReadableException(org.springframework.http.converter.HttpMessageNotReadableException) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

Value (org.springframework.beans.factory.annotation.Value)71 Autowired (org.springframework.beans.factory.annotation.Autowired)33 IOException (java.io.IOException)29 Collectors (java.util.stream.Collectors)29 List (java.util.List)24 Logger (org.slf4j.Logger)23 LoggerFactory (org.slf4j.LoggerFactory)23 PathVariable (org.springframework.web.bind.annotation.PathVariable)20 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)20 ArrayList (java.util.ArrayList)18 RequestParam (org.springframework.web.bind.annotation.RequestParam)18 Map (java.util.Map)17 Optional (java.util.Optional)17 HttpServletResponse (javax.servlet.http.HttpServletResponse)16 RestController (org.springframework.web.bind.annotation.RestController)16 RequestMethod (org.springframework.web.bind.annotation.RequestMethod)15 Stream (java.util.stream.Stream)14 HttpStatus (org.springframework.http.HttpStatus)14 ApiOperation (io.swagger.annotations.ApiOperation)13 ApiParam (io.swagger.annotations.ApiParam)12