dmolony-DiskBrowser/src/com/bytezone/diskbrowser/duplicates/DiskDetails.java

157 lines
5.6 KiB
Java
Raw Normal View History

2016-12-07 10:42:01 +00:00
package com.bytezone.diskbrowser.duplicates;
2015-06-01 09:35:51 +00:00
import java.io.File;
2016-12-09 11:31:03 +00:00
import java.util.ArrayList;
import java.util.List;
2015-06-01 09:35:51 +00:00
2016-12-16 20:45:08 +00:00
import com.bytezone.diskbrowser.utilities.Utility;
2015-06-01 09:35:51 +00:00
2020-02-08 09:54:50 +00:00
// -----------------------------------------------------------------------------------//
2016-12-07 10:42:01 +00:00
public class DiskDetails
2020-02-08 09:54:50 +00:00
// -----------------------------------------------------------------------------------//
2015-06-01 09:35:51 +00:00
{
private final File file;
2016-12-13 03:36:26 +00:00
private long checksum;
2016-12-09 11:31:03 +00:00
private final String rootName; // full path without the root folder
private final String shortName; // file name in lower case
2016-12-16 20:45:08 +00:00
private final String type;
private final long size;
2015-06-01 09:35:51 +00:00
2020-02-02 10:17:49 +00:00
private final List<DiskDetails> duplicateChecksums = new ArrayList<> ();
private final List<DiskDetails> duplicateNames = new ArrayList<> ();
2016-12-09 11:31:03 +00:00
private boolean isDuplicateName;
private boolean isDuplicateChecksum;
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-12 07:43:19 +00:00
public DiskDetails (File file, String rootName, String shortName, boolean doChecksum)
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2015-06-01 09:35:51 +00:00
{
this.file = file;
2016-12-09 11:31:03 +00:00
this.rootName = rootName;
this.shortName = shortName;
2016-12-16 20:45:08 +00:00
this.type = Utility.getSuffix (shortName);
this.size = file.length ();
2016-12-12 07:43:19 +00:00
if (doChecksum)
2020-06-26 04:20:01 +00:00
checksum = Utility.getChecksumValue (file);
2016-12-12 07:43:19 +00:00
else
checksum = 0;
2016-12-09 11:31:03 +00:00
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
public File getFile ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
{
return file;
}
2016-12-09 11:31:03 +00:00
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
public void addDuplicateChecksum (DiskDetails diskDetails)
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
{
if (this.checksum == diskDetails.checksum)
{
this.duplicateChecksums.add (diskDetails);
diskDetails.isDuplicateChecksum = true;
}
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
public void addDuplicateName (DiskDetails diskDetails)
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
{
if (this.shortName.equals (diskDetails.shortName))
{
this.duplicateNames.add (diskDetails);
diskDetails.isDuplicateName = true;
}
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
public List<DiskDetails> getDuplicateChecksums ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
{
return duplicateChecksums;
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
public List<DiskDetails> getDuplicateNames ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
{
return duplicateNames;
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
public boolean isDuplicateChecksum ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
{
return isDuplicateChecksum;
2015-06-01 09:35:51 +00:00
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
public boolean isDuplicateName ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-07 10:42:01 +00:00
{
2016-12-09 11:31:03 +00:00
return isDuplicateName;
2016-12-07 10:42:01 +00:00
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
public String getRootName ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-07 10:42:01 +00:00
{
2016-12-09 11:31:03 +00:00
return rootName;
2016-12-07 10:42:01 +00:00
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-16 20:45:08 +00:00
public String getType ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-16 20:45:08 +00:00
{
return type;
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-16 20:45:08 +00:00
public long getSize ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-16 20:45:08 +00:00
{
return size;
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-09 11:31:03 +00:00
public String getShortName ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2015-06-01 09:35:51 +00:00
{
2016-12-09 11:31:03 +00:00
return shortName;
2015-06-01 09:35:51 +00:00
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-16 01:19:59 +00:00
public String getFileName ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-16 01:19:59 +00:00
{
return file.getName ();
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-13 03:36:26 +00:00
public long calculateChecksum ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2015-06-01 09:35:51 +00:00
{
2020-06-26 04:20:01 +00:00
checksum = Utility.getChecksumValue (file);
2015-06-01 09:35:51 +00:00
return checksum;
}
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-13 03:36:26 +00:00
public long getChecksum ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2016-12-13 03:36:26 +00:00
{
return checksum;
}
2015-06-01 09:35:51 +00:00
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2015-06-01 09:35:51 +00:00
@Override
public String toString ()
2020-02-08 09:54:50 +00:00
// ---------------------------------------------------------------------------------//
2015-06-01 09:35:51 +00:00
{
2016-12-16 20:45:08 +00:00
return String.format ("%3d %1.1s %3d %1.1s %-40s ", duplicateChecksums.size (),
isDuplicateChecksum, duplicateNames.size (), isDuplicateName, rootName);
2015-06-01 09:35:51 +00:00
}
}