public synchronized Map getProperties(IResource target) throws CoreException {
final Map result = new HashMap();
tree.accept(new PropertyBucket.Visitor() {
public int visit(Entry entry) {
PropertyEntry propertyEntry = (PropertyEntry) entry;
int propertyCount = propertyEntry.getOccurrences();
for (int i = 0; i < propertyCount; i++)
result.put(propertyEntry.getPropertyName(i), propertyEntry.getPropertyValue(i));
return CONTINUE;
}
}, target.getFullPath(), BucketTree.DEPTH_ZERO);
return result;
}