// TODO: deal with cascaded delete ramifications on the cache
}
public Collection select(Selector selector, Set extraRows) {
Condition condition = selector.getCondition();
Table table = selector.getTable();
Collection xmlResults = null;
if (condition == null) {
xmlResults = new ArrayList();
xmlResults.add(deriveValue(document.getRootElement(), table.getName()));
} else if (condition instanceof SimpleCondition) {
SimpleCondition sc = (SimpleCondition) condition;
Column column = sc.getColumn();
Object value = sc.getValue();
// ".." == (Element) means get all children of an element
// with an element name matching the table name.
if ("..".equals(column.getName()) && (value instanceof Element)) {
Element parent = (Element) value;
xmlResults = parent.getChildren(table.getName());
}
}
// Populate the rows
ArrayList rows = new ArrayList();