mirror of
https://github.com/JHUAPL/DistMaker.git
synced 2026-01-11 07:27:54 -05:00
67 lines
1.3 KiB
Java
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);
|
|
}
|
|
}
|