001: /*
002: * (c) Copyright 2008 by Volker Bergmann. All rights reserved.
003: *
004: * Redistribution and use in source and binary forms, with or without
005: * modification, is permitted under the terms of the
006: * GNU General Public License.
007: *
008: * For redistributing this software or a derivative work under a license other
009: * than the GPL-compatible Free Software License as defined by the Free
010: * Software Foundation or approved by OSI, you must first obtain a commercial
011: * license to this software product from Volker Bergmann.
012: *
013: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
014: * WITHOUT A WARRANTY OF ANY KIND. ALL EXPRESS OR IMPLIED CONDITIONS,
015: * REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF
016: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE
017: * HEREBY EXCLUDED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
018: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
019: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
020: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
021: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
022: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
023: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
024: * POSSIBILITY OF SUCH DAMAGE.
025: */
026:
027: package org.databene.id;
028:
029: /**
030: * Identifies an IdProvider.<br/><br/>
031: * Created: 30.01.2008 09:03:44
032: * @since 0.4.0
033: * @author Volker Bergmann
034: */
035: public class IdProviderId {
036:
037: private String strategyName;
038: private String scope;
039: private String param;
040: private String systemId;
041:
042: public IdProviderId(String strategyName, String param,
043: String scope, String systemId) {
044: this .strategyName = strategyName;
045: this .scope = scope;
046: this .param = param;
047: this .systemId = systemId;
048: }
049:
050: /**
051: * @see java.lang.Object#hashCode()
052: */
053: @Override
054: public int hashCode() {
055: final int prime = 31;
056: int result = 1;
057: result = prime * result
058: + ((param == null) ? 0 : param.hashCode());
059: result = prime * result
060: + ((scope == null) ? 0 : scope.hashCode());
061: result = prime
062: * result
063: + ((strategyName == null) ? 0 : strategyName.hashCode());
064: result = prime * result
065: + ((systemId == null) ? 0 : systemId.hashCode());
066: return result;
067: }
068:
069: /**
070: * @see java.lang.Object#equals(java.lang.Object)
071: */
072: @Override
073: public boolean equals(Object obj) {
074: if (this == obj)
075: return true;
076: if (obj == null)
077: return false;
078: if (getClass() != obj.getClass())
079: return false;
080: final IdProviderId other = (IdProviderId) obj;
081: if (param == null) {
082: if (other.param != null)
083: return false;
084: } else if (!param.equals(other.param))
085: return false;
086: if (scope == null) {
087: if (other.scope != null)
088: return false;
089: } else if (!scope.equals(other.scope))
090: return false;
091: if (strategyName == null) {
092: if (other.strategyName != null)
093: return false;
094: } else if (!strategyName.equals(other.strategyName))
095: return false;
096: if (systemId == null) {
097: if (other.systemId != null)
098: return false;
099: } else if (!systemId.equals(other.systemId))
100: return false;
101: return true;
102: }
103:
104: }
|