package com.github.geequery.codegen.pdm.model;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import jef.database.meta.PrimaryKey;
import org.apache.commons.lang.StringUtils;
/**
*
* @author <a href="mailto:nikola.petkov@gmail.com">Nikola Petkov <nikola.petkov@gmail.com></a>
*/
public class MetaKey{
protected String code;
protected List<MetaColumn> columnsList = new ArrayList<MetaColumn>();
protected String name;
/**
*
*/
public MetaKey() {
}
/**
*
* @param aName
* @param aCode
*/
public MetaKey(String aName, String aCode) {
name = aName;
code = aCode;
}
/**
* Adds a new MetaColumn into key group
*
* @param aMetaColumn
*/
public void addColumn(MetaColumn aMetaColumn) {
columnsList.add(aMetaColumn);
}
/**
* @param aMetaColumn
* @return true if aMetaColumn is part of this MetaKey
*/
public boolean containsColumn(MetaColumn aMetaColumn) {
return columnsList.contains(aMetaColumn);
}
/**
* @param aColCode
* @return @throws
* NullPointerException
*/
public boolean containsColumn(String aColCode)throws NullPointerException {
for(MetaColumn column:this.columnsList){
if(aColCode.equals(column.getCode())){
return true;
}
}
return false;
}
/**
* @return Enumeration of all columns of this MetaKey
*/
public Collection<MetaColumn> getColumns() {
return columnsList;
}
/**
* @return code.
*/
public String getCode() {
return code;
}
/**
* @return name.
*/
public String getName() {
return name;
}
@Override
public String toString() {
return StringUtils.join(columnsList,',');
}
/**
* @param aCode
* The code to set.
*/
public void setCode(String aCode) {
code = aCode;
}
/**
* @param aName
* The name to set.
*/
public void setName(String aName) {
name = aName;
}
public PrimaryKey toJefPk() {
PrimaryKey key=new PrimaryKey(code);
String[] columns=new String[this.columnsList.size()];
for(int i=0;i<columnsList.size();i++){
columns[i]=columnsList.get(i).getCode();
}
key.setColumns(columns);
return key;
}
}