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

io.swagger.models.properties.StringProperty Maven / Gradle / Ivy

package io.swagger.models.properties;

import io.swagger.models.Xml;

import java.util.ArrayList;
import java.util.List;

/**
 * The StringProperty class defines properties for strings without a specific format, for standard formats which don't
 * need specific handling, or for custom formats.
 */
public class StringProperty extends AbstractProperty implements Property {
    public static final String TYPE = "string";
    protected List _enum;
    protected Integer minLength = null, maxLength = null;
    protected String pattern;
    protected String _default;

    public enum Format {
        URI("uri"),
        URL("url");

        private final String name;

        private Format(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }

        public static Format fromName(String name) {
            for (Format item : values()) {
                if (item.getName().equals(name)) {
                    return item;
                }
            }
            return null;
        }
    }

    public StringProperty() {
        this((String) null);
    }

    public StringProperty(Format format) {
        this(format.getName());
    }

    public StringProperty(String format) {
        super.type = TYPE;
        super.format = format;
    }

    public static boolean isType(String type, String format) {
        return TYPE.equals(type);
    }

    public StringProperty pattern(String pattern) {
        this.setPattern(pattern);
        return this;
    }

    public StringProperty xml(Xml xml) {
        this.setXml(xml);
        return this;
    }

    public StringProperty example(String example) {
        this.setExample(example);
        return this;
    }

    public StringProperty minLength(Integer minLength) {
        this.setMinLength(minLength);
        return this;
    }

    public StringProperty maxLength(Integer maxLength) {
        this.setMaxLength(maxLength);
        return this;
    }

    public StringProperty _enum(String value) {
        if (this._enum == null) {
            this._enum = new ArrayList();
        }
        if (!_enum.contains(value)) {
            _enum.add(value);
        }
        return this;
    }

    public StringProperty _enum(List value) {
        this._enum = value;
        return this;
    }

    public StringProperty _default(String _default) {
        this._default = _default;
        return this;
    }

    public StringProperty vendorExtension(String key, Object obj) {
        this.setVendorExtension(key, obj);
        return this;
    }

    public StringProperty required(boolean required) {
        this.setRequired(required);
        return this;
    }

    public StringProperty readOnly() {
        this.setReadOnly(Boolean.TRUE);
        return this;
    }

    public List getEnum() {
        return _enum;
    }

    public void setEnum(List _enum) {
        this._enum = _enum;
    }

    public Integer getMinLength() {
        return minLength;
    }

    public void setMinLength(Integer minLength) {
        this.minLength = minLength;
    }

    public Integer getMaxLength() {
        return maxLength;
    }

    public void setMaxLength(Integer maxLength) {
        this.maxLength = maxLength;
    }

    public String getPattern() {
        return pattern;
    }

    public void setPattern(String pattern) {
        this.pattern = pattern;
    }

    public String getDefault() {
        return _default;
    }

    public void setDefault(String _default) {
        this._default = _default;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = super.hashCode();
        result = prime * result + ((_default == null) ? 0 : _default.hashCode());
        result = prime * result + ((_enum == null) ? 0 : _enum.hashCode());
        result = prime * result + ((maxLength == null) ? 0 : maxLength.hashCode());
        result = prime * result + ((minLength == null) ? 0 : minLength.hashCode());
        result = prime * result + ((pattern == null) ? 0 : pattern.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (!super.equals(obj)) {
            return false;
        }
        if (!(obj instanceof StringProperty)) {
            return false;
        }
        StringProperty other = (StringProperty) obj;
        if (_default == null) {
            if (other._default != null) {
                return false;
            }
        } else if (!_default.equals(other._default)) {
            return false;
        }
        if (_enum == null) {
            if (other._enum != null) {
                return false;
            }
        } else if (!_enum.equals(other._enum)) {
            return false;
        }
        if (maxLength == null) {
            if (other.maxLength != null) {
                return false;
            }
        } else if (!maxLength.equals(other.maxLength)) {
            return false;
        }
        if (minLength == null) {
            if (other.minLength != null) {
                return false;
            }
        } else if (!minLength.equals(other.minLength)) {
            return false;
        }
        if (pattern != null ? !pattern.equals(other.pattern) : other.pattern != null) {
            return false;
        }
        return true;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy