Files
DistMaker/src/distMaker/node/FileNode.java
Norberto Lopez d609c0d46c Various updates
2013-04-17 21:56:38 +00:00

67 lines
1.3 KiB
Java

package distMaker.node;
import glum.io.IoUtil;
import glum.net.Credential;
import glum.task.Task;
import java.io.File;
import java.net.URL;
import distMaker.DistUtils;
public class FileNode implements Node
{
protected URL rootUrl;
protected String md5sum;
protected String fileName;
protected long fileLen;
public FileNode(URL aRootUrl, String aFileName, String aMd5sum, long aFileLen)
{
rootUrl = aRootUrl;
fileName = aFileName;
md5sum = aMd5sum;
fileLen = aFileLen;
}
@Override
public boolean areContentsEqual(Node aNode)
{
FileNode fNode;
if (aNode instanceof FileNode == false)
return false;
fNode = (FileNode)aNode;
if (fNode.md5sum.equals(md5sum) == false)
return false;
if (fNode.fileName.equals(fileName) == false)
return false;
if (fNode.fileLen != fileLen)
return false;
return true;
}
@Override
public String getFileName()
{
return fileName;
}
@Override
public boolean transferContentTo(Task aTask, Credential aCredential, File dstPath)
{
URL srcUrl;
File dstFile;
// Determine the source URL to copy the contents from
srcUrl = IoUtil.createURL(rootUrl.toString() + "/" + fileName);
// Determine the file to transfer the contents to
dstFile = new File(dstPath, fileName);
return DistUtils.downloadFile(aTask, srcUrl, dstFile, aCredential);
}
}