/* * Copyright (c) 2013, OpenCloudDB/MyCAT and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software;Designed and Developed mainly by many Chinese * opensource volunteers. you can redistribute it and/or modify it under the * terms of the GNU General Public License version 2 only, as published by the * Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Any questions about this component can be directed to it's project Web address * https://code.google.com/p/opencloudb/. * */ package org.opencloudb.mpp; /** * join relation * * @author wuzhih * */ public class JoinRel { public JoinRel(String leftTable, String columnNameA, String rightTable, String columnNameB) { tableA=leftTable; columnA=columnNameA.toUpperCase(); tableB=rightTable; columnB=columnNameB.toUpperCase(); joinSQLExp=tableA+'.'+columnA+'='+tableB+'.'+columnB; } public final String joinSQLExp; public final String tableA; public final String columnA; public final String tableB; public final String columnB; @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((columnA == null) ? 0 : columnA.hashCode()); result = prime * result + ((columnB == null) ? 0 : columnB.hashCode()); result = prime * result + ((tableA == null) ? 0 : tableA.hashCode()); result = prime * result + ((tableB == null) ? 0 : tableB.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; JoinRel other = (JoinRel) obj; if (columnA == null) { if (other.columnA != null) return false; } else if (!columnA.equals(other.columnA)) return false; if (columnB == null) { if (other.columnB != null) return false; } else if (!columnB.equals(other.columnB)) return false; if (tableA == null) { if (other.tableA != null) return false; } else if (!tableA.equals(other.tableA)) return false; if (tableB == null) { if (other.tableB != null) return false; } else if (!tableB.equals(other.tableB)) return false; return true; } @Override public String toString() { return "JoinRel [tableA=" + tableA + ", columnA=" + columnA + ", tableB=" + tableB + ", columnB=" + columnB + "]"; } }