in vault-vlt/src/main/java/org/apache/jackrabbit/vault/vlt/VltFile.java [538:598]
public FileAction status(VaultFile remoteFile) throws VltException {
State state = getStatus();
switch (state) {
case IGNORED:
case OBSTRUCTED:
case REPLACED:
return FileAction.CONFLICTED;
case ADDED:
if (remoteFile != null) {
return FileAction.CONFLICTED;
} else {
return FileAction.VOID;
}
case CLEAN:
if (remoteFile == null) {
return FileAction.DELETED;
} else {
if (file.isDirectory()) {
// do nothing
return FileAction.VOID;
} else {
return equalsToRemote(remoteFile)
? FileAction.VOID
: FileAction.UPDATED;
}
}
case CONFLICTED:
// do not probe further
return FileAction.CONFLICTED;
case DELETED:
return FileAction.VOID;
case MISSING:
return FileAction.ADDED;
case MODIFIED:
if (remoteFile == null) {
return FileAction.DELETED;
} else {
return mergeableWithRemote(remoteFile);
}
case UNKNOWN:
if (remoteFile == null) {
// do nothing
return FileAction.VOID;
} else {
return FileAction.UPDATED;
}
case VOID:
return FileAction.ADDED;
default:
throw exception("illegal state: " + state, null);
}
}