Example usage for org.springframework.data.rest.core.config ProjectionDefinitionConfiguration getParameterName

List of usage examples for org.springframework.data.rest.core.config ProjectionDefinitionConfiguration getParameterName

Introduction

In this page you can find the example usage for org.springframework.data.rest.core.config ProjectionDefinitionConfiguration getParameterName.

Prototype

public String getParameterName() 

Source Link

Usage

From source file:org.springframework.data.rest.webmvc.alps.RootResourceInformationToAlpsDescriptorConverter.java

/**
 * Builds a descriptor for the projection parameter of the given resource.
 * //from   ww  w.  ja  va 2  s  .  co m
 * @param metadata
 * @return
 */
private Descriptor buildProjectionDescriptor(ResourceMetadata metadata) {

    ProjectionDefinitionConfiguration projectionConfiguration = configuration.getProjectionConfiguration();
    String projectionParameterName = projectionConfiguration.getParameterName();

    Map<String, Class<?>> projections = projectionConfiguration.getProjectionsFor(metadata.getDomainType());
    List<Descriptor> projectionDescriptors = new ArrayList<Descriptor>(projections.size());

    for (Entry<String, Class<?>> projection : projections.entrySet()) {

        Class<?> type = projection.getValue();
        String key = String.format("%s.%s.%s", metadata.getRel(), projectionParameterName, projection.getKey());
        ResourceDescription fallback = SimpleResourceDescription.defaultFor(key);
        AnnotationBasedResourceDescription projectionDescription = new AnnotationBasedResourceDescription(type,
                fallback);

        projectionDescriptors.add(//
                descriptor().//
                        type(Type.SEMANTIC).//
                        name(projection.getKey()).//
                        doc(getDocFor(projectionDescription)).//
                        descriptors(createJacksonDescriptor(projection.getKey(), type)).//
                        build());
    }

    return descriptor().//
            type(Type.SEMANTIC).//
            name(projectionParameterName).//
            doc(getDocFor(SimpleResourceDescription.defaultFor(projectionParameterName))).//
            descriptors(projectionDescriptors).build();
}

From source file:org.springframework.data.rest.webmvc.alps.RootResourceInformationToAlpsDescriptorConverter.java

/**
 * Creates the {@link Descriptor}s for pagination parameters.
 * //from   w w w.j  a va2 s. co  m
 * @param type
 * @return
 */
private List<Descriptor> getPaginationDescriptors(Class<?> type, HttpMethod method) {

    RepositoryInformation information = repositories.getRepositoryInformationFor(type);

    if (!information.isPagingRepository() || !getType(method).equals(Type.SAFE)) {
        return Collections.emptyList();
    }

    Link linkToCollectionResource = entityLinks.linkToCollectionResource(type);
    List<TemplateVariable> variables = linkToCollectionResource.getVariables();
    List<Descriptor> descriptors = new ArrayList<Descriptor>(variables.size());

    ProjectionDefinitionConfiguration projectionConfiguration = configuration.getProjectionConfiguration();

    for (TemplateVariable variable : variables) {

        // Skip projection parameter
        if (projectionConfiguration.getParameterName().equals(variable.getName())) {
            continue;
        }

        ResourceDescription description = SimpleResourceDescription.defaultFor(variable.getDescription());

        descriptors.add(//
                descriptor().//
                        name(variable.getName()).//
                        type(Type.SEMANTIC).//
                        doc(getDocFor(description)).//
                        build());
    }

    return descriptors;
}