@Override
public Iterator<String> getNames(String relPath) throws RepositoryException {
checkRelativePath(relPath);
Tree tree = getTree();
TreeLocation location = getLocation(tree, relPath);
Tree parent = location.getTree();
if (parent != null && Text.isDescendantOrEqual(tree.getPath(), parent.getPath())) {
List<String> l = new ArrayList<String>();
for (PropertyState property : parent.getProperties()) {
String propName = property.getName();
if (isAuthorizableProperty(tree, location.getChild(propName), false)) {
l.add(propName);
}
}
return l.iterator();
} else {