* INTERNAL:
*/
@Override
public List<DatabaseField> getSelectionFields(ReadQuery query) {
ArrayList<DatabaseField> result = new ArrayList<DatabaseField>();
InterfaceContainerPolicy icp = getInterfaceContainerPolicy();
// if this is a map entry get all the fields for both the key and the value
if (returnMapEntry || !icp.isMappedKeyMapPolicy()){
result.addAll(getBaseExpression().getSelectionFields(query));
} else if (isAttribute()) {
DatabaseField field = getField();
if (field != null) {
result.add(field);