silentbalanceyh/vertx-zero

View on GitHub
vertx-gaia/vertx-up/src/main/java/io/vertx/up/atom/Epsilon.java

Summary

Maintainability
A
1 hr
Test Coverage
package io.vertx.up.atom;

import io.vertx.up.eon.KWeb;
import io.vertx.up.eon.em.EmMime;

import java.io.Serializable;
import java.lang.annotation.Annotation;

/**
 * Parameter container to getNull parameters
 */
@SuppressWarnings("unchecked")
public class Epsilon<T> implements Serializable {

    private Object defaultValue;
    private String name;
    private EmMime.Flow mime;
    private Class<?> argType;
    private Annotation annotation;

    private T value;

    public String getName() {
        return this.name;
    }

    public void setName(final String name) {
        if (KWeb.ARGS.MIME_DIRECT.equals(name)) {
            this.mime = EmMime.Flow.RESOLVER;
        } else if (KWeb.ARGS.MIME_IGNORE.equals(name)) {
            this.mime = EmMime.Flow.TYPED;
        } else {
            this.mime = EmMime.Flow.STANDARD;
        }
        this.name = name;
    }

    public Annotation getAnnotation() {
        return this.annotation;
    }

    public void setAnnotation(final Annotation annotation) {
        this.annotation = annotation;
    }

    public Class<?> getArgType() {
        return this.argType;
    }

    public void setArgType(final Class<?> argType) {
        this.argType = argType;
    }

    public T getValue() {
        if (null == this.value) {
            if (null == this.defaultValue) {
                return null;
            } else {
                return (T) this.defaultValue;
            }
        } else {
            return this.value;
        }
    }

    public Epsilon<T> setValue(final T value) {
        this.value = value;
        return this;
    }

    public Object getDefaultValue() {
        return this.defaultValue;
    }

    public void setDefaultValue(final Object defaultValue) {
        this.defaultValue = defaultValue;
    }

    public EmMime.Flow getMime() {
        return this.mime;
    }

    public void setMime(final EmMime.Flow mime) {
        this.mime = mime;
    }

    @Override
    public String toString() {
        return "Epsilon{" +
            "name='" + this.name + '\'' +
            ", mime=" + this.mime +
            ", argType=" + this.argType +
            ", defaultValue=" + this.defaultValue +
            ", annotation=" + this.annotation +
            ", value=" + this.value +
            '}';
    }
}