    001/*
    002 * Copyright (c) 2007-2016 Concurrent, Inc. All Rights Reserved.
    003 *
    004 * Project and contact information: http://www.cascading.org/
    005 *
    006 * This file is part of the Cascading project.
    007 *
    008 * Licensed under the Apache License, Version 2.0 (the "License");
    009 * you may not use this file except in compliance with the License.
    010 * You may obtain a copy of the License at
    011 *
    012 *     http://www.apache.org/licenses/LICENSE-2.0
    013 *
    014 * Unless required by applicable law or agreed to in writing, software
    015 * distributed under the License is distributed on an "AS IS" BASIS,
    016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    017 * See the License for the specific language governing permissions and
    018 * limitations under the License.
    019 */
    020
    021package cascading.util;
    022
    023/**
    024 *
    025 */
    026public class Pair<Lhs, Rhs>
    027  {
    028  Lhs lhs;
    029  Rhs rhs;
    030
    031  public Pair( Lhs lhs, Rhs rhs )
    032    {
    033    this.lhs = lhs;
    034    this.rhs = rhs;
    035    }
    036
    037  public Lhs getLhs()
    038    {
    039    return lhs;
    040    }
    041
    042  public void setLhs( Lhs lhs )
    043    {
    044    this.lhs = lhs;
    045    }
    046
    047  public Rhs getRhs()
    048    {
    049    return rhs;
    050    }
    051
    052  public void setRhs( Rhs rhs )
    053    {
    054    this.rhs = rhs;
    055    }
    056
    057  @Override
    058  public boolean equals( Object object )
    059    {
    060    if( this == object )
    061      return true;
    062    if( object == null || getClass() != object.getClass() )
    063      return false;
    064
    065    Pair pair = (Pair) object;
    066
    067    if( lhs != null ? !lhs.equals( pair.lhs ) : pair.lhs != null )
    068      return false;
    069    if( rhs != null ? !rhs.equals( pair.rhs ) : pair.rhs != null )
    070      return false;
    071
    072    return true;
    073    }
    074
    075  @Override
    076  public int hashCode()
    077    {
    078    int result = lhs != null ? lhs.hashCode() : 0;
    079    result = 31 * result + ( rhs != null ? rhs.hashCode() : 0 );
    080    return result;
    081    }
    082
    083  @Override
    084  public String toString()
    085    {
    086    final StringBuilder sb = new StringBuilder( "Pair{" );
    087    sb.append( "lhs=" ).append( lhs );
    088    sb.append( ", rhs=" ).append( rhs );
    089    sb.append( '}' );
    090    return sb.toString();
    091    }
    092  }