if (isDir && !name.endsWith("/")) {
name += "/";
} else if (!isDir && name.endsWith("/")) {
name = name.substring(0, name.length() - 1);
}
TarArchiveEntry ent =
new TarArchiveEntry(name, getPreserveLeadingSlashes());
ent.setModTime(round(r.getResource().getLastModified(),
1000));
ent.setSize(isDir ? 0 : r.getResource().getSize());
if (!isDir && r.getCollectionFlags().hasModeBeenSet()) {
ent.setMode(r.getCollectionFlags().getMode());
} else if (isDir
&& r.getCollectionFlags().hasDirModeBeenSet()) {
ent.setMode(r.getCollectionFlags().getDirMode());
} else if (r.getResourceFlags().hasModeBeenSet()) {
ent.setMode(r.getResourceFlags().getMode());
} else {
ent.setMode(isDir
? ArchiveFileSet.DEFAULT_DIR_MODE
: ArchiveFileSet.DEFAULT_FILE_MODE);
}
if (r.getResourceFlags().hasUserIdBeenSet()) {
ent.setUserId(r.getResourceFlags().getUserId());
} else if (r.getCollectionFlags().hasUserIdBeenSet()) {
ent.setUserId(r.getCollectionFlags().getUserId());
}
if (r.getResourceFlags().hasGroupIdBeenSet()) {
ent.setGroupId(r.getResourceFlags().getGroupId());
} else if (r.getCollectionFlags().hasGroupIdBeenSet()) {
ent.setGroupId(r.getCollectionFlags().getGroupId());
}
if (r.getResourceFlags().hasUserNameBeenSet()) {
ent.setUserName(r.getResourceFlags().getUserName());
} else if (r.getCollectionFlags().hasUserNameBeenSet()) {
ent.setUserName(r.getCollectionFlags().getUserName());
}
if (r.getResourceFlags().hasGroupNameBeenSet()) {
ent.setGroupName(r.getResourceFlags().getGroupName());
} else if (r.getCollectionFlags().hasGroupNameBeenSet()) {
ent.setGroupName(r.getCollectionFlags().getGroupName());
}
return ent;
}
});