Package com.dottydingo.hyperion.module.swagger.jackson

Source Code of com.dottydingo.hyperion.module.swagger.jackson.TypeIdSchemaFactoryWrapper

package com.dottydingo.hyperion.module.swagger.jackson;

import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonArrayFormatVisitor;
import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonObjectFormatVisitor;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
import com.fasterxml.jackson.module.jsonSchema.factories.ArrayVisitor;
import com.fasterxml.jackson.module.jsonSchema.factories.ObjectVisitor;
import com.fasterxml.jackson.module.jsonSchema.factories.SchemaFactoryWrapper;
import com.fasterxml.jackson.module.jsonSchema.factories.WrapperFactory;import java.lang.Override;
import java.util.*;

/**
*/
public class TypeIdSchemaFactoryWrapper extends SchemaFactoryWrapper
{

    private WrapperFactory wrapperFactory = new WrapperFactory() {
        @Override
        public SchemaFactoryWrapper getWrapper(SerializerProvider p) {
            SchemaFactoryWrapper wrapper = new TypeIdSchemaFactoryWrapper();
            wrapper.setProvider(p);
            return wrapper;
        };
    };

    public TypeIdSchemaFactoryWrapper()
    {
        super();
        this.visitorFactory = new FilteringVisitorFactory();
    }

    @Override
    public JsonArrayFormatVisitor expectArrayFormat(JavaType convertedType)
    {
        ArrayVisitor visitor = ((ArrayVisitor)super.expectArrayFormat(convertedType));
        visitor.setWrapperFactory(wrapperFactory);
        return visitor;
    }

    @Override
    public JsonObjectFormatVisitor expectObjectFormat(JavaType convertedType)
    {
        ObjectVisitor visitor = ((ObjectVisitor)super.expectObjectFormat(convertedType));
        visitor.getSchema().setProperties(new LinkedHashMap<String, JsonSchema>());
        visitor.setWrapperFactory(wrapperFactory);
        visitor.getSchema().setId(convertedType.getRawClass().getSimpleName());
        return visitor;
    }
}
TOP

Related Classes of com.dottydingo.hyperion.module.swagger.jackson.TypeIdSchemaFactoryWrapper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.