private Iterator<HierarchyEntry> getAllChildEntries(boolean includeAttic) {
IteratorChain chain = new IteratorChain();
// attic
if (includeAttic) {
Collection<PropertyEntry> attic = propertiesInAttic.values();
chain.addIterator(new ArrayList<PropertyEntry>(attic).iterator());
}
// add props
synchronized (properties) {
Collection<PropertyEntry> props = properties.getPropertyEntries();
chain.addIterator(props.iterator());