    001    /*
    002     * Copyright 2009 Red Hat, Inc.
    003     * Red Hat licenses this file to you under the Apache License, version
    004     * 2.0 (the "License"); you may not use this file except in compliance
    005     * with the License.  You may obtain a copy of the License at
    006     *    http://www.apache.org/licenses/LICENSE-2.0
    007     * Unless required by applicable law or agreed to in writing, software
    008     * distributed under the License is distributed on an "AS IS" BASIS,
    009     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    010     * implied.  See the License for the specific language governing
    011     * permissions and limitations under the License.
    012     */
    013
    014    package org.hornetq.api.core;
    015
    016    import java.io.Serializable;
    017
    018    import org.hornetq.api.core.client.HornetQClient;
    019    import org.hornetq.core.logging.Logger;
    020    import org.hornetq.utils.UUIDGenerator;
    021
    022    /**
    023     * A DiscoveryGroupConfiguration
    024     *
    025     * @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a>
    026     *
    027     * Created 18 Nov 2008 08:47:30
    028     *
    029     *
    030     */
    031    public class DiscoveryGroupConfiguration implements Serializable
    032    {
    033       private static final long serialVersionUID = 8657206421727863400L;
    034
    035       private static final Logger log = Logger.getLogger(DiscoveryGroupConfiguration.class);
    036
    037
    038       private String name;
    039
    040       private String localBindAddress;
    041
    042       private String groupAddress;
    043
    044       private int groupPort;
    045
    046       private long refreshTimeout;
    047
    048       private long discoveryInitialWaitTimeout;
    049
    050       public DiscoveryGroupConfiguration(final String name,
    051                                          final String localBindAddress,
    052                                          final String groupAddress,
    053                                          final int groupPort,
    054                                          final long refreshTimeout,
    055                                          final long discoveryInitialWaitTimeout)
    056       {
    057          this.name = name;
    058          this.groupAddress = groupAddress;
    059          this.localBindAddress = localBindAddress;
    060          this.groupPort = groupPort;
    061          this.refreshTimeout = refreshTimeout;
    062          this.discoveryInitialWaitTimeout = discoveryInitialWaitTimeout;
    063       }
    064
    065       public DiscoveryGroupConfiguration(final String groupAddress,
    066                                          final int groupPort)
    067       {
    068          this(UUIDGenerator.getInstance().generateStringUUID(), null, groupAddress, groupPort, HornetQClient.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT, HornetQClient.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT);
    069       }
    070
    071       public String getName()
    072       {
    073          return name;
    074       }
    075
    076       public String getLocalBindAddress()
    077       {
    078          return localBindAddress;
    079       }
    080
    081       public String getGroupAddress()
    082       {
    083          return groupAddress;
    084       }
    085
    086       public int getGroupPort()
    087       {
    088          return groupPort;
    089       }
    090
    091       public long getRefreshTimeout()
    092       {
    093          return refreshTimeout;
    094       }
    095
    096       /**
    097        * @param name the name to set
    098        */
    099       public void setName(final String name)
    100       {
    101          this.name = name;
    102       }
    103
    104       /**
    105        * @param localBindAddress the localBindAddress to set
    106        */
    107       public void setLocalBindAdress(final String localBindAddress)
    108       {
    109          this.localBindAddress = localBindAddress;
    110       }
    111
    112       /**
    113        * @param groupAddress the groupAddress to set
    114        */
    115       public void setGroupAddress(final String groupAddress)
    116       {
    117          this.groupAddress = groupAddress;
    118       }
    119
    120       /**
    121        * @param groupPort the groupPort to set
    122        */
    123       public void setGroupPort(final int groupPort)
    124       {
    125          this.groupPort = groupPort;
    126       }
    127
    128       /**
    129        * @param refreshTimeout the refreshTimeout to set
    130        */
    131       public void setRefreshTimeout(final long refreshTimeout)
    132       {
    133          this.refreshTimeout = refreshTimeout;
    134       }
    135
    136       /**
    137        * @return the discoveryInitialWaitTimeout
    138        */
    139       public long getDiscoveryInitialWaitTimeout()
    140       {
    141          return discoveryInitialWaitTimeout;
    142       }
    143
    144       /**
    145        * @param discoveryInitialWaitTimeout the discoveryInitialWaitTimeout to set
    146        */
    147       public void setDiscoveryInitialWaitTimeout(long discoveryInitialWaitTimeout)
    148       {
    149          this.discoveryInitialWaitTimeout = discoveryInitialWaitTimeout;
    150       }
    151
    152       @Override
    153       public boolean equals(Object o)
    154       {
    155          if (this == o) return true;
    156          if (o == null || getClass() != o.getClass()) return false;
    157
    158          DiscoveryGroupConfiguration that = (DiscoveryGroupConfiguration) o;
    159
    160          if (discoveryInitialWaitTimeout != that.discoveryInitialWaitTimeout) return false;
    161          if (groupPort != that.groupPort) return false;
    162          if (refreshTimeout != that.refreshTimeout) return false;
    163          if (groupAddress != null ? !groupAddress.equals(that.groupAddress) : that.groupAddress != null) return false;
    164          if (localBindAddress != null ? !localBindAddress.equals(that.localBindAddress) : that.localBindAddress != null)
    165             return false;
    166          if (name != null ? !name.equals(that.name) : that.name != null) return false;
    167
    168          return true;
    169       }
    170
    171       @Override
    172       public int hashCode()
    173       {
    174          int result = name != null ? name.hashCode() : 0;
    175          result = 31 * result + (localBindAddress != null ? localBindAddress.hashCode() : 0);
    176          result = 31 * result + (groupAddress != null ? groupAddress.hashCode() : 0);
    177          result = 31 * result + groupPort;
    178          result = 31 * result + (int) (refreshTimeout ^ (refreshTimeout >>> 32));
    179          result = 31 * result + (int) (discoveryInitialWaitTimeout ^ (discoveryInitialWaitTimeout >>> 32));
    180          return result;
    181       }
    182
    183       /* (non-Javadoc)
    184        * @see java.lang.Object#toString()
    185        */
    186       @Override
    187       public String toString()
    188       {
    189          return "DiscoveryGroupConfiguration [discoveryInitialWaitTimeout=" + discoveryInitialWaitTimeout +
    190                 ", groupAddress=" +
    191                 groupAddress +
    192                 ", groupPort=" +
    193                 groupPort +
    194                 ", localBindAddress=" +
    195                 localBindAddress +
    196                 ", name=" +
    197                 name +
    198                 ", refreshTimeout=" +
    199                 refreshTimeout +
    200                 "]";
    201       }
    202
    203
    204    }