mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +02:00
GP-1994 refined datatype search and add ability to specify a program's
preferred root-namespace category node
This commit is contained in:
parent
4b600847eb
commit
d7fc209657
12 changed files with 734 additions and 179 deletions
|
@ -60,8 +60,12 @@ public abstract class DomainObjectAdapter implements DomainObject {
|
|||
private ArrayList<Object> consumers;
|
||||
protected Map<String, String> metadata = new LinkedHashMap<String, String>();
|
||||
|
||||
// A flag indicating whether the domain object has changed. Any methods of this domain object
|
||||
// which cause its state to change must set this flag to true
|
||||
// FIXME: (see GP-2003) "changed" flag is improperly manipulated by various methods.
|
||||
// In general, comitted transactions will trigger all valid cases of setting flag to true,
|
||||
// there may be a few cases where setting it to false may be appropriate. Without a transation
|
||||
// it's unclear why it should ever need to get set true.
|
||||
|
||||
// A flag indicating whether the domain object has changed.
|
||||
protected boolean changed = false;
|
||||
|
||||
// a flag indicating that this object is temporary
|
||||
|
|
|
@ -214,9 +214,6 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
return changeSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see db.util.ErrorHandler#dbError(java.io.IOException)
|
||||
*/
|
||||
@Override
|
||||
public void dbError(IOException e) {
|
||||
fatalErrorOccurred = true;
|
||||
|
@ -238,9 +235,6 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
return names;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#getOptions(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public Options getOptions(String propertyListName) {
|
||||
return new SubOptions(options, propertyListName, propertyListName + Options.DELIMITER);
|
||||
|
@ -259,25 +253,16 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
options.performAlterations(propertyAlterations);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#canLock()
|
||||
*/
|
||||
@Override
|
||||
public boolean canLock() {
|
||||
return transactionMgr.getCurrentTransaction() == null && !closed;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#isLocked()
|
||||
*/
|
||||
@Override
|
||||
public boolean isLocked() {
|
||||
return transactionMgr.isLocked();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#lock(String)
|
||||
*/
|
||||
@Override
|
||||
public boolean lock(String reason) {
|
||||
return transactionMgr.lock(reason);
|
||||
|
@ -308,17 +293,11 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
return transactionMgr.lockForSnapshot(this, hasProgress, title);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#forceLock(boolean, String)
|
||||
*/
|
||||
@Override
|
||||
public void forceLock(boolean rollback, String reason) {
|
||||
transactionMgr.forceLock(rollback, reason);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#unlock()
|
||||
*/
|
||||
@Override
|
||||
public void unlock() {
|
||||
transactionMgr.unlock();
|
||||
|
@ -336,9 +315,6 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
return startTransaction(description, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.UndoableDomainObject#startTransaction(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public int startTransaction(String description, AbortedTransactionListener listener) {
|
||||
int id = -1;
|
||||
|
@ -359,9 +335,6 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.UndoableDomainObject#endTransaction(int, boolean)
|
||||
*/
|
||||
@Override
|
||||
public void endTransaction(int transactionID, boolean commit) {
|
||||
transactionMgr.endTransaction(this, transactionID, commit, true);
|
||||
|
@ -395,65 +368,41 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
return transactionMgr.getUndoStackDepth();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.Undoable#canRedo()
|
||||
*/
|
||||
@Override
|
||||
public boolean canRedo() {
|
||||
return transactionMgr.canRedo();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.Undoable#canUndo()
|
||||
*/
|
||||
@Override
|
||||
public boolean canUndo() {
|
||||
return transactionMgr.canUndo();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.Undoable#getRedoName()
|
||||
*/
|
||||
@Override
|
||||
public String getRedoName() {
|
||||
return transactionMgr.getRedoName();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.Undoable#getUndoName()
|
||||
*/
|
||||
@Override
|
||||
public String getUndoName() {
|
||||
return transactionMgr.getUndoName();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.UndoableDomainObject#getCurrentTransaction()
|
||||
*/
|
||||
@Override
|
||||
public Transaction getCurrentTransaction() {
|
||||
return transactionMgr.getCurrentTransaction();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.Undoable#redo()
|
||||
*/
|
||||
@Override
|
||||
public void redo() throws IOException {
|
||||
transactionMgr.redo();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.Undoable#undo()
|
||||
*/
|
||||
@Override
|
||||
public void undo() throws IOException {
|
||||
transactionMgr.undo();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#isChanged()
|
||||
*/
|
||||
@Override
|
||||
public boolean isChanged() {
|
||||
if (dbh == null) {
|
||||
|
@ -484,9 +433,6 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.Undoable#clearUndo()
|
||||
*/
|
||||
@Override
|
||||
public void clearUndo() {
|
||||
clearUndo(true);
|
||||
|
@ -500,9 +446,6 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
options.clearCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#canSave()
|
||||
*/
|
||||
@Override
|
||||
public synchronized boolean canSave() {
|
||||
DomainFile df = getDomainFile();
|
||||
|
@ -512,9 +455,6 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
return dbh.canUpdate();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#save(java.lang.String, ghidra.util.task.TaskMonitor)
|
||||
*/
|
||||
@Override
|
||||
public void save(String comment, TaskMonitor monitor) throws IOException, CancelledException {
|
||||
if (!canSave()) {
|
||||
|
@ -554,9 +494,6 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#saveToPackedFile(java.io.File, ghidra.util.task.TaskMonitor)
|
||||
*/
|
||||
@Override
|
||||
public void saveToPackedFile(File outputFile, TaskMonitor monitor)
|
||||
throws IOException, CancelledException {
|
||||
|
@ -620,17 +557,11 @@ public abstract class DomainObjectAdapterDB extends DomainObjectAdapter
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.DomainObject#isClosed()
|
||||
*/
|
||||
@Override
|
||||
public boolean isClosed() {
|
||||
return closed;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ghidra.framework.model.UndoableDomainObject#hasTerminatedTransaction()
|
||||
*/
|
||||
@Override
|
||||
public boolean hasTerminatedTransaction() {
|
||||
return transactionMgr.hasTerminatedTransaction();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue