package de.tud.inf.example.table;
import com.rapidminer.example.table.ExampleTable;
/**
* stores information about dependencies between attribute values,
* should be abstract, so that concrete implementations of ComplexAttributeDescriptions are required
* @author Antje Gruner
*
*/
public class ComplexAttributeDescription {
private int[] attIds;
private int[] paramIds;
private String name;
private String symbol;
private String hint;
/**
*
* @param attIds attribute indexes
* @param paramIds parameter indexes
* @param symbol symbol of complex value function
* @param name name of complex attribute
*/
public ComplexAttributeDescription(int[] attIds, int[] paramIds, String symbol, String name, String hint) {
this.attIds = attIds;
this.paramIds = paramIds;
this.symbol = symbol;
this.name = name;
this.hint = hint;
}
public int[] getAttributeIndexes() {
return attIds;
}
public int[] getParamIndexes() {
return paramIds;
}
public String getSymbol(){
return symbol;
}
public String getName(){
return name;
}
public String getHint(){
return hint;
}
public void checkConstraints(ExampleTable et) {
if(this.attIds == null || this.attIds.length == 0)
throw new IllegalArgumentException("attribute " +name+ " must contain at least one inner attribute");
}
}