1   /*
2    * Copyright 2002-2009 the original author or authors.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package net.sf.json.sample;
18  
19  import java.util.HashSet;
20  import java.util.Set;
21  
22  import org.apache.commons.lang.builder.EqualsBuilder;
23  import org.apache.commons.lang.builder.HashCodeBuilder;
24  import org.apache.commons.lang.builder.ToStringBuilder;
25  import org.apache.commons.lang.builder.ToStringStyle;
26  
27  /**
28   * @author Andres Almiray <aalmiray@users.sourceforge.net>
29   */
30  public class SetBean {
31     private Set attributes = new HashSet();
32  
33     public void addAttribute( Object value ) {
34        this.attributes.add( value );
35     }
36  
37     public boolean equals( Object obj ) {
38        if( obj == this ){
39           return true;
40        }
41        if( obj == null ){
42           return false;
43        }
44        if( !SetBean.class.isAssignableFrom( obj.getClass() ) ){
45           return false;
46        }
47        return EqualsBuilder.reflectionEquals( this, obj );
48     }
49  
50     public Set getAttributes() {
51        return attributes;
52     }
53  
54     public int hashCode() {
55        return HashCodeBuilder.reflectionHashCode( this );
56     }
57  
58     public void setAttributes( Set attributes ) {
59        this.attributes = attributes;
60     }
61  
62     public String toString() {
63        return ToStringBuilder.reflectionToString( this, ToStringStyle.MULTI_LINE_STYLE );
64     }
65  }