/*
 * Copyright 2004-2007 Brian McCallister
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.skife.jdbi.v2;

/**
 *
 */
public class Something
{
    private int id;
    private String name;
    private Integer integerValue;
    private int intValue;

    public Something()
    {
    }

    public Something(int id, String name)
    {
        this.id = id;
        this.name = name;
    }

    public int getId()
    {
        return id;
    }

    public void setId(int id)
    {
        this.id = id;
    }

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }


    public Integer getIntegerValue()
    {
        return integerValue;
    }

    public void setIntegerValue(Integer integerValue)
    {
        this.integerValue = integerValue;
    }

    public int getIntValue()
    {
        return intValue;
    }

    public void setIntValue(int intValue)
    {
        this.intValue = intValue;
    }

    @Override
    public boolean equals(Object o)
    {
        if (this == o) return true;
        if (!(o instanceof Something)) return false;

        Something something = (Something) o;

        if (id != something.id) return false;
        if (intValue != something.intValue) return false;
        if (integerValue != null ? !integerValue.equals(something.integerValue) : something.integerValue != null)
            return false;
        if (name != null ? !name.equals(something.name) : something.name != null) return false;

        return true;
    }

    @Override
    public int hashCode()
    {
        int result = id;
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (integerValue != null ? integerValue.hashCode() : 0);
        result = 31 * result + intValue;
        return result;
    }

    @Override
    public String toString()
    {
        return "Something{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", integerValue=" + integerValue +
                ", intValue=" + intValue +
                '}';
    }
}

@@ -1504,32 +1504,248 @@
 ntValue;%0A    %7D%0A%0A
+    // Issue #61: @BindBean fails if there is a writable but not readable property, so let's have one...%0A    public void setWithoutGetter(String bogus)%0A    %7B%0A        throw new UnsupportedOperationException();%0A    %7D%0A%0A
     @Override%0A  

Test case for #61: cause NPE in BindBeanFactory if there are writable but not readable properties