mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-06-02 19:21:14 +08:00
Merge branch 'GP-3281_ghidragon_followup_file_archive_test_failures'
This commit is contained in:
+21
@@ -18,6 +18,7 @@ package ghidra.app.plugin.core.datamgr.archive;
|
|||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
|
|
||||||
@@ -167,6 +168,26 @@ public class FileArchive implements Archive {
|
|||||||
return archiveManager;
|
return archiveManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(archiveFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (getClass() != obj.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
FileArchive other = (FileArchive) obj;
|
||||||
|
return Objects.equals(archiveFile, other.archiveFile);
|
||||||
|
}
|
||||||
|
|
||||||
private void fireStateChanged() {
|
private void fireStateChanged() {
|
||||||
archiveManager.fireArchiveStateChanged(this);
|
archiveManager.fireArchiveStateChanged(this);
|
||||||
}
|
}
|
||||||
|
|||||||
+21
@@ -17,6 +17,7 @@ package ghidra.app.plugin.core.datamgr.archive;
|
|||||||
|
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
|
|
||||||
@@ -54,6 +55,26 @@ public class ProgramArchive implements DomainFileArchive {
|
|||||||
return dataTypeManager.getName();
|
return dataTypeManager.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return program.hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (getClass() != obj.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ProgramArchive other = (ProgramArchive) obj;
|
||||||
|
return Objects.equals(program, other.program);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(Archive archive) {
|
public int compareTo(Archive archive) {
|
||||||
if (archive instanceof BuiltInArchive) {
|
if (archive instanceof BuiltInArchive) {
|
||||||
|
|||||||
+21
@@ -17,6 +17,7 @@ package ghidra.app.plugin.core.datamgr.archive;
|
|||||||
|
|
||||||
import java.awt.Component;
|
import java.awt.Component;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
|
|
||||||
@@ -66,6 +67,26 @@ public class ProjectArchive implements DomainFileArchive {
|
|||||||
return -1; // Project Archives appear between the ProgramArchive and FileArchives.
|
return -1; // Project Archives appear between the ProgramArchive and FileArchives.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return originalDomainFile.getFileID().hashCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (obj == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (getClass() != obj.getClass()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ProjectArchive other = (ProjectArchive) obj;
|
||||||
|
return Objects.equals(originalDomainFile.getFileID(), other.originalDomainFile.getFileID());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isModifiable() {
|
public boolean isModifiable() {
|
||||||
DomainFile domainFile = getDomainObject().getDomainFile();
|
DomainFile domainFile = getDomainObject().getDomainFile();
|
||||||
|
|||||||
-35
@@ -30,12 +30,10 @@ public class FileArchiveNode extends ArchiveNode {
|
|||||||
new GIcon("icon.plugin.datatypes.tree.node.archive.file.checked.out.exclusive");
|
new GIcon("icon.plugin.datatypes.tree.node.archive.file.checked.out.exclusive");
|
||||||
|
|
||||||
FileArchive fileArchive; // casted reference for easy access
|
FileArchive fileArchive; // casted reference for easy access
|
||||||
String fullName;
|
|
||||||
|
|
||||||
public FileArchiveNode(FileArchive archive, ArrayPointerFilterState filterState) {
|
public FileArchiveNode(FileArchive archive, ArrayPointerFilterState filterState) {
|
||||||
super(archive, filterState);
|
super(archive, filterState);
|
||||||
this.fileArchive = archive;
|
this.fileArchive = archive;
|
||||||
fullName = archive.getName() + ": " + archive.getFile().getAbsolutePath();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -60,40 +58,7 @@ public class FileArchiveNode extends ArchiveNode {
|
|||||||
return "[Unsaved New Archive]";
|
return "[Unsaved New Archive]";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return fullName;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getDisplayText() {
|
|
||||||
return archive.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hasWriteLock() {
|
public boolean hasWriteLock() {
|
||||||
return fileArchive.hasWriteLock();
|
return fileArchive.hasWriteLock();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Overridden to avoid path conflicts that arise in CategoryNode.equals()
|
|
||||||
*
|
|
||||||
* @see java.lang.Object#equals(java.lang.Object)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (getClass() != o.getClass()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (super.equals(o)) {
|
|
||||||
ResourceFile myFile = fileArchive.getFile();
|
|
||||||
ResourceFile otherFile = ((FileArchiveNode) o).fileArchive.getFile();
|
|
||||||
return myFile.equals(otherFile);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user