/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.segmentation.gui.preference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Represente une structure de table dont les noms (table et champs) sont des variables
*/
public class DBStructureVariable extends DBStructureComposite implements Constants {
private Map<String, String> variables = new HashMap<String, String>();
/**
* DOCUMENT ME!
*
* @param tableName
*
* @return la liste des colonnes de la table tableName
*/
@Override
public List getColumnsFor(String tableName) {
if (VAR_TABLE.equals(tableName)) {
return new ArrayList<String>(variables.keySet());
}
return super.getColumnsFor(tableName);
}
/**
* DOCUMENT ME!
*
* @param tableName nom de la table
* @param sqlField nom de la colonne
*
* @return le libell� de la colonne sqlField de la table tableName
*/
@Override
public String getColumnLabelFor(String tableName, String sqlField) {
if (VAR_TABLE.equals(tableName)) {
if (variables.containsKey(sqlField)) {
return variables.get(sqlField);
}
return sqlField;
}
else {
return super.getColumnLabelFor(tableName, sqlField);
}
}
/**
* Affecte une variable � la structure
*
* @param variableName nom de la variable
* @param variableLabel libell� de la variable
*/
public void addVariable(String variableName, String variableLabel) {
this.variables.put(variableName, variableLabel);
}
}