public Object[] getChildren() { final List<?> list = headList_.getList(); if (list.isEmpty()) { // should not happen except for printing log messages return new Object[] {name_, "?"}; } Object o = list.remove(0); if (list.isEmpty()) { return new Object[] {name_, o, headList_.getJoker()}; } return new Object[] {name_, o, this}; }