001: package org.tigris.scarab.reports;
002:
003: /* ================================================================
004: * Copyright (c) 2000-2002 CollabNet. All rights reserved.
005: *
006: * Redistribution and use in source and binary forms, with or without
007: * modification, are permitted provided that the following conditions are
008: * met:
009: *
010: * 1. Redistributions of source code must retain the above copyright
011: * notice, this list of conditions and the following disclaimer.
012: *
013: * 2. Redistributions in binary form must reproduce the above copyright
014: * notice, this list of conditions and the following disclaimer in the
015: * documentation and/or other materials provided with the distribution.
016: *
017: * 3. The end-user documentation included with the redistribution, if
018: * any, must include the following acknowlegement: "This product includes
019: * software developed by Collab.Net <http://www.Collab.Net/>."
020: * Alternately, this acknowlegement may appear in the software itself, if
021: * and wherever such third-party acknowlegements normally appear.
022: *
023: * 4. The hosted project names must not be used to endorse or promote
024: * products derived from this software without prior written
025: * permission. For written permission, please contact info@collab.net.
026: *
027: * 5. Products derived from this software may not use the "Tigris" or
028: * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
029: * prior written permission of Collab.Net.
030: *
031: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
032: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
033: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
034: * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
035: * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
036: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
037: * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
038: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
039: * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
040: */
041:
042: import org.apache.fulcrum.intake.Retrievable;
043: import org.apache.commons.lang.ObjectUtils;
044: import org.tigris.scarab.util.Log;
045:
046: /**
047: *
048: * @author <a href="mailto:jmcnally@collab.net">John McNally</a>
049: * @version $Id: ReportUserAttribute.java 7498 2003-03-28 00:00:16Z jon $
050: */
051: public class ReportUserAttribute implements java.io.Serializable,
052: Retrievable {
053: private Integer attributeId;
054:
055: private Integer userId;
056:
057: private String queryKey;
058:
059: /**
060: * Get the AttributeId value.
061: * @return the AttributeId value.
062: */
063: public Integer getAttributeId() {
064: return attributeId;
065: }
066:
067: /**
068: * Set the AttributeId value.
069: * @param newAttributeId The new AttributeId value.
070: */
071: public void setAttributeId(Integer newAttributeId) {
072: this .attributeId = newAttributeId;
073: }
074:
075: /**
076: * Get the UserId value.
077: * @return the UserId value.
078: */
079: public Integer getUserId() {
080: return userId;
081: }
082:
083: /**
084: * Set the UserId value.
085: * @param newUserId The new UserId value.
086: */
087: public void setUserId(Integer newUserId) {
088: this .userId = newUserId;
089: }
090:
091: public boolean equals(Object obj) {
092: boolean result = obj == this ;
093: if (!result && obj instanceof ReportUserAttribute) {
094: ReportUserAttribute rua = (ReportUserAttribute) obj;
095: result = ObjectUtils.equals(userId, rua.getUserId())
096: && ObjectUtils.equals(attributeId, rua
097: .getAttributeId());
098: }
099: Log.get().debug(
100: "Compare " + obj + " and " + this + " -> " + result);
101:
102: return result;
103: }
104:
105: public int hashCode() {
106: int result = userId == null ? 0 : userId.intValue();
107: if (attributeId != null) {
108: result += attributeId.intValue();
109: }
110: return result;
111: }
112:
113: public String toString() {
114: return super .toString() + " {a=" + attributeId + ", u="
115: + userId + "}";
116: }
117:
118: /**
119: * Get the QueryKey value.
120: * @return the QueryKey value.
121: */
122: public String getQueryKey() {
123: return queryKey == null ? "" : queryKey;
124: }
125:
126: /**
127: * Set the QueryKey value.
128: * @param newQueryKey The new QueryKey value.
129: */
130: public void setQueryKey(String newQueryKey) {
131: this.queryKey = newQueryKey;
132: }
133: }
|