
syncloud.synchronization.nodes.FilesSyncBundle Maven / Gradle / Ivy
The newest version!
package syncloud.synchronization.nodes;
import syncloud.core.CoreException;
import syncloud.dao.State;
import syncloud.synchronization.ISyncRecord;
import syncloud.synchronization.ISynchronizer;
import syncloud.storage.IFile;
import syncloud.storage.IFolder;
import syncloud.storage.INode;
import java.util.List;
public class FilesSyncBundle extends SyncBundle {
public FilesSyncBundle(ISynchronizer sync, List nodes) {
super(sync, nodes);
}
@Override
public void synchronize() {
super.synchronize();
}
@Override
protected NodeState getState(SyncNode node) {
State state = sync.getRecord().get(node.getFullname());
if (node.getNode() == null) {
if (state != null)
return NodeState.DELETED;
else
return NodeState.NOTEXISTS;
} else if (state != null) {
if (!((IFile)node.getNode()).getVersion().equals(state.version))
return NodeState.CHANGED;
else
return NodeState.UNCHANGED;
} else {
return NodeState.ADDED;
}
}
@Override
protected void putRecord(ISyncRecord records, INode node) {
IFile file = (IFile)node;
records.set(new State(file.getKey().getNativePath(), file.getVersion()));
}
@Override
protected INode create(IFolder parent, INode from) throws CoreException {
IFile fromFile = (IFile)from;
IFile createdFile = parent.createFile(fromFile.getName(), fromFile, fromFile.size());
return createdFile;
}
@Override
protected void change(INode from, INode to) throws CoreException {
IFile fromFile = (IFile)from;
IFile toFile = (IFile)to;
toFile.save(fromFile, fromFile.size());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy