Example usage for org.springframework.restdocs.payload FieldDescriptor getPath

List of usage examples for org.springframework.restdocs.payload FieldDescriptor getPath

Introduction

In this page you can find the example usage for org.springframework.restdocs.payload FieldDescriptor getPath.

Prototype

public final String getPath() 

Source Link

Document

Returns the path of the field described by this descriptor.

Usage

From source file:capital.scalable.restdocs.jackson.ExtendedFieldDescriptor.java

public ExtendedFieldDescriptor(FieldDescriptor descriptor) {
    this.path = descriptor.getPath();
    this.type = descriptor.getType();
    this.optionals = (List<String>) descriptor.getAttributes().get(OPTIONAL_ATTRIBUTE);
    this.description = descriptor.getDescription();
    this.constraints = (List<String>) descriptor.getAttributes().get(CONSTRAINTS_ATTRIBUTE);
}

From source file:org.springframework.restdocs.payload.FieldSnippetResultHandler.java

FieldSnippetResultHandler(String outputDir, String filename, List<FieldDescriptor> descriptors) {
    super(outputDir, filename + "-fields");
    for (FieldDescriptor descriptor : descriptors) {
        Assert.notNull(descriptor.getPath());
        Assert.hasText(descriptor.getDescription());
        this.descriptorsByPath.put(descriptor.getPath(), descriptor);
    }//  w w w . j  a  v  a 2  s  . c  o m
    this.fieldDescriptors = descriptors;
}

From source file:org.springframework.restdocs.payload.FieldValidator.java

private Map<String, Object> findUndocumentedFields(Map<String, Object> payload,
        List<FieldDescriptor> fieldDescriptors) {
    for (FieldDescriptor fieldDescriptor : fieldDescriptors) {
        String path = fieldDescriptor.getPath();
        List<String> segments = path.indexOf('.') > -1 ? Arrays.asList(path.split("\\.")) : Arrays.asList(path);
        removeField(segments, 0, payload);
    }//  w  w  w.j  a va2  s. com
    return payload;
}

From source file:capital.scalable.restdocs.snippet.StandardTableSnippet.java

protected Map<String, Object> createModelForDescriptor(FieldDescriptor descriptor, String lineBreak) {
    String path = descriptor.getPath();
    String type = toString(descriptor.getType());
    String description = convertFromJavadoc(toString(descriptor.getDescription()), lineBreak);

    List<String> optionalMessages = (List<String>) descriptor.getAttributes().get(OPTIONAL_ATTRIBUTE);
    String optional = "" + join(optionalMessages, lineBreak);

    List<String> constraints = (List<String>) descriptor.getAttributes().get(CONSTRAINTS_ATTRIBUTE);

    description = joinAndFormat(lineBreak, description, constraints);

    Map<String, Object> model = new HashMap<>();
    model.put("path", path);
    model.put("type", type);
    model.put("optional", optional);
    model.put("description", description);
    return model;
}

From source file:capital.scalable.restdocs.payload.AbstractJacksonFieldSnippet.java

private void resolveFieldDescriptors(Map<String, FieldDescriptor> fieldDescriptors, Type type,
        ObjectWriter writer, TypeFactory typeFactory, JavadocReader javadocReader,
        ConstraintReader constraintReader) throws JsonMappingException {
    FieldDocumentationGenerator generator = new FieldDocumentationGenerator(writer, javadocReader,
            constraintReader);/* www. j a va2s  .c  om*/
    List<FieldDescriptor> descriptors = generator.generateDocumentation(type, typeFactory);
    for (FieldDescriptor descriptor : descriptors) {
        if (fieldDescriptors.get(descriptor.getPath()) == null) {
            fieldDescriptors.put(descriptor.getPath(), descriptor);
        }
    }
}

From source file:org.springframework.restdocs.payload.JsonContentHandler.java

@Override
public String getUndocumentedContent(List<FieldDescriptor> fieldDescriptors) {
    Object content = readContent();
    for (FieldDescriptor fieldDescriptor : fieldDescriptors) {
        JsonFieldPath path = JsonFieldPath.compile(fieldDescriptor.getPath());
        this.fieldProcessor.remove(path, content);
    }//from   ww  w  .j a  v  a 2s  .c o  m
    if (!isEmpty(content)) {
        try {
            return this.objectMapper.writeValueAsString(content);
        } catch (JsonProcessingException ex) {
            throw new PayloadHandlingException(ex);
        }
    }
    return null;
}

From source file:org.springframework.restdocs.payload.FieldValidator.java

private List<String> findMissingFields(Map<String, Object> payload, List<FieldDescriptor> fieldDescriptors) {
    List<String> missingFields = new ArrayList<String>();

    for (FieldDescriptor fieldDescriptor : fieldDescriptors) {
        if (!fieldDescriptor.isOptional()
                && !this.fieldExtractor.hasField(fieldDescriptor.getPath(), payload)) {
            missingFields.add(fieldDescriptor.getPath());
        }/*from  w w  w  .ja  v  a 2 s .co m*/
    }

    return missingFields;
}

From source file:org.springframework.restdocs.payload.JsonContentHandler.java

@Override
public Object determineFieldType(FieldDescriptor fieldDescriptor) {
    if (fieldDescriptor.getType() == null) {
        return this.fieldTypeResolver.resolveFieldType(fieldDescriptor.getPath(), readContent());
    }/*ww w  .  j  a va 2s .  co m*/
    if (!(fieldDescriptor.getType() instanceof JsonFieldType)) {
        return fieldDescriptor.getType();
    }
    JsonFieldType descriptorFieldType = (JsonFieldType) fieldDescriptor.getType();
    try {
        JsonFieldType actualFieldType = this.fieldTypeResolver.resolveFieldType(fieldDescriptor.getPath(),
                readContent());
        if (descriptorFieldType == JsonFieldType.VARIES || descriptorFieldType == actualFieldType) {
            return descriptorFieldType;
        }
        throw new FieldTypesDoNotMatchException(fieldDescriptor, actualFieldType);
    } catch (FieldDoesNotExistException ex) {
        return fieldDescriptor.getType();
    }
}

From source file:org.springframework.restdocs.payload.JsonContentHandler.java

@Override
public List<FieldDescriptor> findMissingFields(List<FieldDescriptor> fieldDescriptors) {
    List<FieldDescriptor> missingFields = new ArrayList<>();
    Object payload = readContent();
    for (FieldDescriptor fieldDescriptor : fieldDescriptors) {
        if (!fieldDescriptor.isOptional()
                && !this.fieldProcessor.hasField(JsonFieldPath.compile(fieldDescriptor.getPath()), payload)) {
            missingFields.add(fieldDescriptor);
        }/*from   ww w  .  j  av  a  2 s . c o  m*/
    }

    return missingFields;
}

From source file:org.springframework.restdocs.payload.FieldSnippetResultHandler.java

@Override
protected void handle(MvcResult result, DocumentationWriter writer) throws IOException {

    this.fieldValidator.validate(getPayloadReader(result), this.fieldDescriptors);

    final Map<String, Object> payload = extractPayload(result);

    List<String> missingFields = new ArrayList<String>();

    for (FieldDescriptor fieldDescriptor : this.fieldDescriptors) {
        if (!fieldDescriptor.isOptional()) {
            Object field = this.fieldExtractor.extractField(fieldDescriptor.getPath(), payload);
            if (field == null) {
                missingFields.add(fieldDescriptor.getPath());
            }//from w w  w. j  av  a 2 s  .co  m
        }
    }

    writer.table(new TableAction() {

        @Override
        public void perform(TableWriter tableWriter) throws IOException {
            tableWriter.headers("Path", "Type", "Description");
            for (Entry<String, FieldDescriptor> entry : FieldSnippetResultHandler.this.descriptorsByPath
                    .entrySet()) {
                FieldDescriptor descriptor = entry.getValue();
                FieldType type = descriptor.getType() != null ? descriptor.getType()
                        : FieldSnippetResultHandler.this.fieldTypeResolver
                                .resolveFieldType(descriptor.getPath(), payload);
                tableWriter.row(entry.getKey().toString(), type.toString(), entry.getValue().getDescription());
            }

        }

    });

}