All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.vertx.up.uca.rs.mime.resolver.JsonResolver Maven / Gradle / Ivy

There is a newer version: 0.9.0
Show newest version
package io.vertx.up.uca.rs.mime.resolver;

import io.vertx.ext.web.RoutingContext;
import io.vertx.up.atom.Epsilon;
import io.vertx.up.log.Annal;
import io.vertx.up.runtime.ZeroSerializer;
import io.vertx.up.uca.rs.mime.Resolver;
import io.vertx.up.util.Ut;

/**
 * Json Resolver
 *
 * @param 
 */
@SuppressWarnings("unchecked")
public class JsonResolver implements Resolver {

    private static final Annal LOGGER = Annal.get(JsonResolver.class);

    @Override
    public Epsilon resolve(final RoutingContext context,
                              final Epsilon income) {
        // Json Resolver
        final String content = context.getBodyAsString();
        LOGGER.info(Ut.notNil(content), "( Resolver ) Income Type: {0}, Content = \u001b[0;37m{1}\u001b[m",
            income.getArgType().getName(), content);
        if (Ut.isNil(content)) {
            // Default Value set for BodyParam
            final T defaultValue = (T) income.getDefaultValue();
            income.setValue(defaultValue);
        } else {
            final Object result = ZeroSerializer.getValue(income.getArgType(), content);
            if (null != result) {
                income.setValue((T) result);
            }
        }
        return income;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy