@Override
    public int hashCode() {
        int hash = 5;
        hash = 97 * hash + (this.name != null ? this.name.hashCode() : 0);
        hash = 97 * hash + (this.supportedTypes != null ? this.supportedTypes.hashCode() : 0);
        hash = 97 * hash + (this.required ? 1 : 0);
        hash = 97 * hash + (this.notNull ? 1 : 0);
        hash = 97 * hash + (this.tail ? 1 : 0);
        return hash;
    }