001 /** 002 * 003 * Copyright 2004 Hiram Chirino 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 * 017 **/ 018 package org.activemq.ra; 019 020 import javax.resource.spi.ConnectionRequestInfo; 021 import java.io.Serializable; 022 023 024 /** 025 * @version $Revision: 1.1.1.1 $ 026 * 027 * Must override equals and hashCode (JCA spec 16.4) 028 */ 029 public class ActiveMQConnectionRequestInfo implements ConnectionRequestInfo, Serializable, Cloneable { 030 031 private static final long serialVersionUID = -5754338187296859149L; 032 033 private String userName; 034 private String password; 035 private String serverUrl; 036 private String clientid; 037 private Boolean useInboundSession; 038 039 public ActiveMQConnectionRequestInfo copy() { 040 try { 041 return (ActiveMQConnectionRequestInfo) clone(); 042 } 043 catch (CloneNotSupportedException e) { 044 throw new RuntimeException("Could not clone: ", e); 045 } 046 } 047 048 049 /** 050 * @see javax.resource.spi.ConnectionRequestInfo#hashCode() 051 */ 052 public int hashCode() { 053 int rc = 0; 054 if (useInboundSession != null) { 055 rc ^= useInboundSession.hashCode(); 056 } 057 if (serverUrl != null) { 058 rc ^= serverUrl.hashCode(); 059 } 060 return rc; 061 } 062 063 064 /** 065 * @see javax.resource.spi.ConnectionRequestInfo#equals(java.lang.Object) 066 */ 067 public boolean equals(Object o) { 068 if (o == null) { 069 return false; 070 } 071 if (!getClass().equals(o.getClass())) { 072 return false; 073 } 074 ActiveMQConnectionRequestInfo i = (ActiveMQConnectionRequestInfo) o; 075 if ( notEqual(serverUrl, i.serverUrl) ) { 076 return false; 077 } 078 if ( notEqual(useInboundSession, i.useInboundSession) ) { 079 return false; 080 } 081 return true; 082 } 083 084 085 /** 086 * @param i 087 * @return 088 */ 089 private boolean notEqual(Object o1, Object o2) { 090 return (o1 == null ^ o2 == null) || (o1 != null && !o1.equals(o2)); 091 } 092 093 /** 094 * @return Returns the url. 095 */ 096 public String getServerUrl() { 097 return serverUrl; 098 } 099 100 /** 101 * @param url The url to set. 102 */ 103 public void setServerUrl(String url) { 104 this.serverUrl = url; 105 } 106 107 /** 108 * @return Returns the password. 109 */ 110 public String getPassword() { 111 return password; 112 } 113 114 /** 115 * @param password The password to set. 116 */ 117 public void setPassword(String password) { 118 this.password = password; 119 } 120 121 /** 122 * @return Returns the userid. 123 */ 124 public String getUserName() { 125 return userName; 126 } 127 128 /** 129 * @param userid The userid to set. 130 */ 131 public void setUserName(String userid) { 132 this.userName = userid; 133 } 134 135 /** 136 * @return Returns the clientid. 137 */ 138 public String getClientid() { 139 return clientid; 140 } 141 142 /** 143 * @param clientid The clientid to set. 144 */ 145 public void setClientid(String clientid) { 146 this.clientid = clientid; 147 } 148 149 public String toString() { 150 return "ActiveMQConnectionRequestInfo{ " + 151 "userName = '" + userName + "' " + 152 ", serverUrl = '" + serverUrl + "' " + 153 ", clientid = '" + clientid + "' " + 154 ", userName = '" + userName + "' " + 155 ", useInboundSession = '" + useInboundSession + "' " + 156 " }"; 157 } 158 159 160 public Boolean getUseInboundSession() { 161 return useInboundSession; 162 } 163 164 165 public void setUseInboundSession(Boolean useInboundSession) { 166 this.useInboundSession = useInboundSession; 167 } 168 169 170 public boolean isUseInboundSessionEnabled() { 171 return useInboundSession!=null && useInboundSession.booleanValue(); 172 } 173 }