package com.alvazan.orm.layer5.query;
import java.util.Map;
import com.alvazan.orm.api.z8spi.MetaLoader;
import com.alvazan.orm.api.z8spi.meta.DboColumnMeta;
import com.alvazan.orm.api.z8spi.meta.DboDatabaseMeta;
import com.alvazan.orm.api.z8spi.meta.DboTableMeta;
import com.alvazan.orm.parser.antlr.ExpressionNode;
import com.alvazan.orm.parser.antlr.MetaFacade;
import com.alvazan.orm.parser.antlr.ParsedNode;
public class MetaFacadeImpl implements MetaFacade {
private MetaLoader mgr;
private DboDatabaseMeta metaInfo;
private Map<String, Integer> attributeUsedCnt;
public MetaFacadeImpl(MetaLoader mgr, DboDatabaseMeta metaInfo2) {
this.mgr = mgr;
this.metaInfo = metaInfo2;
}
@Override
public ParsedNode createExpression(int nodeType) {
return new ExpressionNode(nodeType);
}
@Override
public DboTableMeta getColumnFamily(String tableName) {
DboTableMeta metaClass = metaInfo.getMeta(tableName);
if(metaClass == null && mgr != null)
metaClass = mgr.find(DboTableMeta.class, tableName);
return metaClass;
}
@Override
public DboColumnMeta getColumnMeta(DboTableMeta metaClass, String columnName) {
return metaClass.getColumnMeta(columnName);
}
@Override
public DboColumnMeta getFkMetaIfExist(DboTableMeta tableMeta, String column) {
DboColumnMeta columnMeta = tableMeta.getColumnMeta(column);
return columnMeta;
}
@Override
public Map<String, Integer> getAttributeUsedCount() {
return attributeUsedCnt;
}
@Override
public void setAttributeUserCount(Map<String, Integer> attributeUsedCount) {
attributeUsedCnt = attributeUsedCount;
}
}