~mortenoh/+junk/dhis2-detailed-import-export

« back to all changes in this revision

Viewing changes to dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataelement/Operand.java

  • Committer: larshelge at gmail
  • Date: 2009-03-03 16:46:36 UTC
  • Revision ID: larshelge@gmail.com-20090303164636-2sjlrquo7ib1gf7r
Initial check-in

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.hisp.dhis.dataelement;
 
2
 
 
3
/*
 
4
 * Copyright (c) 2004-2007, University of Oslo
 
5
 * All rights reserved.
 
6
 *
 
7
 * Redistribution and use in source and binary forms, with or without
 
8
 * modification, are permitted provided that the following conditions are met:
 
9
 * * Redistributions of source code must retain the above copyright notice, this
 
10
 *   list of conditions and the following disclaimer.
 
11
 * * Redistributions in binary form must reproduce the above copyright notice,
 
12
 *   this list of conditions and the following disclaimer in the documentation
 
13
 *   and/or other materials provided with the distribution.
 
14
 * * Neither the name of the HISP project nor the names of its contributors may
 
15
 *   be used to endorse or promote products derived from this software without
 
16
 *   specific prior written permission.
 
17
 *
 
18
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 
19
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 
20
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 
21
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 
22
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 
23
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 
24
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 
25
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
26
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
27
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
28
 */
 
29
 
 
30
import java.io.Serializable;
 
31
 
 
32
/**
 
33
 * @author Abyot Asalefew
 
34
 * @version $Id$
 
35
 */
 
36
public class Operand
 
37
    implements Serializable, Comparable<Operand>
 
38
{
 
39
    public static final String SEPARATOR = ".";
 
40
 
 
41
    private String id;
 
42
 
 
43
    private int dataElementId;
 
44
 
 
45
    private int optionComboId;
 
46
 
 
47
    private String operandName;
 
48
 
 
49
    // -------------------------------------------------------------------------
 
50
    // Constructors
 
51
    // -------------------------------------------------------------------------
 
52
 
 
53
    public Operand()
 
54
    {
 
55
    }
 
56
    
 
57
    public Operand( int dataElementId, int optionComboId )
 
58
    {
 
59
        this.id = dataElementId + SEPARATOR + optionComboId;
 
60
        this.dataElementId = dataElementId;
 
61
        this.optionComboId = optionComboId;
 
62
    }
 
63
 
 
64
    public Operand( int dataElementId, int optionComboId, String operandName )
 
65
    {
 
66
        this.id = dataElementId + SEPARATOR + optionComboId;
 
67
        this.dataElementId = dataElementId;
 
68
        this.optionComboId = optionComboId;
 
69
        this.operandName = operandName;
 
70
    }
 
71
 
 
72
    // -------------------------------------------------------------------------
 
73
    // Getters & setters
 
74
    // -------------------------------------------------------------------------
 
75
 
 
76
    public String getId()
 
77
    {
 
78
        return id;
 
79
    }
 
80
 
 
81
    public void setId( String id )
 
82
    {
 
83
        this.id = id;
 
84
    }
 
85
 
 
86
    public String getOperandName()
 
87
    {
 
88
        return operandName;
 
89
    }
 
90
 
 
91
    public void setOperandName( String operandName )
 
92
    {
 
93
        this.operandName = operandName;
 
94
    }
 
95
 
 
96
    public int getDataElementId()
 
97
    {
 
98
        return dataElementId;
 
99
    }
 
100
 
 
101
    public void setDataElementId( int dataElementId )
 
102
    {
 
103
        this.dataElementId = dataElementId;
 
104
    }
 
105
 
 
106
    public int getOptionComboId()
 
107
    {
 
108
        return optionComboId;
 
109
    }
 
110
 
 
111
    public void setOptionComboId( int optionComboId )
 
112
    {
 
113
        this.optionComboId = optionComboId;
 
114
    }
 
115
 
 
116
    // -------------------------------------------------------------------------
 
117
    // hashCode and equals
 
118
    // -------------------------------------------------------------------------
 
119
 
 
120
    @Override
 
121
    public int hashCode()
 
122
    {
 
123
        final int prime = 31;
 
124
        
 
125
        int result = 1;
 
126
        
 
127
        result = prime * result + dataElementId;
 
128
        result = prime * result + optionComboId;
 
129
        
 
130
        return result;
 
131
    }
 
132
 
 
133
    @Override
 
134
    public boolean equals( Object object )
 
135
    {
 
136
        if ( this == object )
 
137
        {
 
138
            return true;
 
139
        }
 
140
        
 
141
        if ( object == null )
 
142
        {
 
143
            return false;
 
144
        }
 
145
        
 
146
        if ( getClass() != object.getClass() )
 
147
        {
 
148
            return false;
 
149
        }
 
150
        
 
151
        final Operand other = (Operand) object;
 
152
        
 
153
        return dataElementId == other.dataElementId && optionComboId == other.optionComboId;
 
154
    }
 
155
 
 
156
    // -------------------------------------------------------------------------
 
157
    // toString
 
158
    // -------------------------------------------------------------------------
 
159
 
 
160
    @Override
 
161
    public String toString()
 
162
    {
 
163
        return "[DataElementId: " + dataElementId + ", CategoryOptionComboId: " + optionComboId + "]";
 
164
    }
 
165
    
 
166
    // -------------------------------------------------------------------------
 
167
    // compareTo
 
168
    // -------------------------------------------------------------------------
 
169
 
 
170
    public int compareTo( Operand other )
 
171
    {
 
172
        if ( this.getDataElementId() != other.getDataElementId() )
 
173
        {
 
174
            return this.getDataElementId() - other.getDataElementId();
 
175
        }
 
176
        
 
177
        return this.getOptionComboId() - other.getOptionComboId();
 
178
    }
 
179
}