@Override
public Map<String, Object> readAttributes(final Path path,
final String attributes)
throws UnsupportedOperationException, NoSuchFileException, IllegalArgumentException,
IOException, SecurityException {
checkNotNull("path",
path);
checkNotEmpty("attributes",
attributes);
final Properties original = new Properties(Files.readAttributes(path,
attributes));
if (attributes.equals("*") && exists(dot(path))) {
boolean isAttrHolder = path instanceof AttrHolder;
if (isAttrHolder && ((AttrHolder) path).getAttrStorage().getContent().size() > 0) {
return ((AttrHolder) path).getAttrStorage().getAllContent();
}
final Properties content = new Properties();
content.load(newInputStream(dot(path)));
content.putAll(original);
if (isAttrHolder) {
((AttrHolder) path).getAttrStorage().loadContent(content);
}
return content;
}
return original;
}