All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hornetq.api.core.Pair Maven / Gradle / Ivy

/*
 * Copyright 2009 Red Hat, Inc.
 * Red Hat licenses this file to you under the Apache License, version
 * 2.0 (the "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *    http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied.  See the License for the specific language governing
 * permissions and limitations under the License.
 */

package org.hornetq.api.core;

import java.io.Serializable;

/**
 * 
 * A Pair is a holder for 2 objects.
 * 
 * @author Tim Fox
 *
 */
public class Pair implements Serializable
{
   private static final long serialVersionUID = -2496357457812368127L;

   public Pair(final A a, final B b)
   {
      this.a = a;

      this.b = b;
   }

   public A a;

   public B b;

   private int hash = -1;

   @Override
   public int hashCode()
   {
      if (hash == -1)
      {
         if (a == null && b == null)
         {
            return super.hashCode();
         }
         else
         {
            hash = (a == null ? 0 : a.hashCode()) + 37 * (b == null ? 0 : b.hashCode());
         }
      }

      return hash;
   }

   @Override
   public boolean equals(final Object other)
   {
      if (other == this)
      {
         return true;
      }

      if (other instanceof Pair == false)
      {
         return false;
      }

      Pair pother = (Pair)other;

      return (pother.a == null ? a == null : pother.a.equals(a)) && (pother.b == null ? b == null : pother.b.equals(b));

   }

   @Override
   public String toString()
   {
      return "Pair[a=" + a + ", b=" + b + "]";
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy