package com.alvazan.orm.parser.antlr;
import java.util.HashSet;
import java.util.Set;
import com.alvazan.orm.api.z8spi.meta.DboColumnMeta;
public class JoinInfo {
private ViewInfoImpl primaryTable;
private DboColumnMeta primaryCol;
private ViewInfoImpl secondaryTable;
private DboColumnMeta secondaryCol;
private JoinType joinType;
private Set<ViewInfoImpl> viewInfos = new HashSet<ViewInfoImpl>();
public JoinInfo(ViewInfoImpl tableInfo, DboColumnMeta columnMeta,
ViewInfoImpl existing, DboColumnMeta colMeta2, JoinType type) {
this.primaryTable = tableInfo;
this.primaryCol = columnMeta;
this.secondaryTable = existing;
this.secondaryCol = colMeta2;
this.joinType = type;
viewInfos.add(primaryTable);
if(secondaryTable != null)
viewInfos.add(secondaryTable);
}
@Override
public String toString() {
String str = "[alias1="+primaryTable.getAlias();
if(secondaryTable == null)
return str +"]";
return str+",alias2="+secondaryTable.getAlias()+"]";
}
public JoinType getJoinType() {
return joinType;
}
public void setJoinType(JoinType joinType) {
this.joinType = joinType;
}
public ViewInfoImpl getPrimaryTable() {
return primaryTable;
}
public DboColumnMeta getPrimaryCol() {
return primaryCol;
}
public ViewInfoImpl getSecondaryTable() {
return secondaryTable;
}
public DboColumnMeta getSecondaryCol() {
return secondaryCol;
}
// public boolean hasAlias(String alias) {
// if(primaryTable.getAlias().equals(alias))
// return true;
// else if(secondaryTable.getAlias().equals(alias))
// return true;
// return false;
// }
public boolean hasView(ViewInfoImpl view) {
if(primaryTable == view)
return true;
else if(secondaryTable == view)
return true;
return false;
}
public Set<ViewInfoImpl> getViews() {
return viewInfos;
}
}