mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 02:09:44 +02:00
GP-0 Minor cleanup
This commit is contained in:
parent
b5ccf1f063
commit
2c5669dbd0
4 changed files with 33 additions and 25 deletions
|
@ -4,9 +4,9 @@
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
@ -31,7 +31,7 @@ public interface Archive extends DataTypeManagerOwner, Comparable<Archive> {
|
||||||
/**
|
/**
|
||||||
* Gets the name for this data type archive.
|
* Gets the name for this data type archive.
|
||||||
* This is the name to be presented to the user for this archive.
|
* This is the name to be presented to the user for this archive.
|
||||||
* @return the name
|
* @return the name or null if closed
|
||||||
*/
|
*/
|
||||||
public String getName();
|
public String getName();
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
@ -24,6 +24,7 @@ import generic.theme.GIcon;
|
||||||
import ghidra.framework.model.DomainFile;
|
import ghidra.framework.model.DomainFile;
|
||||||
import ghidra.program.model.data.*;
|
import ghidra.program.model.data.*;
|
||||||
import ghidra.program.model.listing.DataTypeArchive;
|
import ghidra.program.model.listing.DataTypeArchive;
|
||||||
|
import ghidra.util.exception.ClosedException;
|
||||||
|
|
||||||
public class ProjectArchive implements DomainFileArchive {
|
public class ProjectArchive implements DomainFileArchive {
|
||||||
|
|
||||||
|
@ -34,7 +35,7 @@ public class ProjectArchive implements DomainFileArchive {
|
||||||
private DomainFile sourceDomainFile;
|
private DomainFile sourceDomainFile;
|
||||||
private DataTypeManagerChangeListener categoryListener; // hold on to since it is stored in a weak set
|
private DataTypeManagerChangeListener categoryListener; // hold on to since it is stored in a weak set
|
||||||
private DataTypeManagerHandler archiveManager;
|
private DataTypeManagerHandler archiveManager;
|
||||||
private DataTypeManager dataTypeManager;
|
private StandAloneDataTypeManager dataTypeManager;
|
||||||
|
|
||||||
ProjectArchive(DataTypeManagerHandler archiveManager, DataTypeArchive dataTypeArchive,
|
ProjectArchive(DataTypeManagerHandler archiveManager, DataTypeArchive dataTypeArchive,
|
||||||
DomainFile sourceDomainFile) {
|
DomainFile sourceDomainFile) {
|
||||||
|
@ -53,6 +54,9 @@ public class ProjectArchive implements DomainFileArchive {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
if (dataTypeManager == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return dataTypeManager.getName();
|
return dataTypeManager.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,6 +78,9 @@ public class ProjectArchive implements DomainFileArchive {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isModifiable() {
|
public boolean isModifiable() {
|
||||||
|
if (dataTypeManager == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
DomainFile df = getDomainObject().getDomainFile();
|
DomainFile df = getDomainObject().getDomainFile();
|
||||||
return df.canSave();
|
return df.canSave();
|
||||||
}
|
}
|
||||||
|
@ -90,6 +97,9 @@ public class ProjectArchive implements DomainFileArchive {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isChanged() {
|
public boolean isChanged() {
|
||||||
|
if (dataTypeManager == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
DomainFile df = dataTypeArchive.getDomainFile();
|
DomainFile df = dataTypeArchive.getDomainFile();
|
||||||
long lastModifiedTime = df.getLastModifiedTime();
|
long lastModifiedTime = df.getLastModifiedTime();
|
||||||
return (lastModifiedTime == 0) || dataTypeArchive.isChanged();
|
return (lastModifiedTime == 0) || dataTypeArchive.isChanged();
|
||||||
|
@ -97,26 +107,35 @@ public class ProjectArchive implements DomainFileArchive {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isSavable() {
|
public boolean isSavable() {
|
||||||
return !dataTypeArchive.getDomainFile().isReadOnly() && dataTypeArchive.isChangeable();
|
return dataTypeManager != null && !dataTypeArchive.getDomainFile().isReadOnly() &&
|
||||||
|
dataTypeArchive.isChangeable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void save() throws IOException {
|
public void save() throws IOException {
|
||||||
|
if (dataTypeManager == null) {
|
||||||
|
throw new ClosedException();
|
||||||
|
}
|
||||||
archiveManager.save(getDomainObject());
|
archiveManager.save(getDomainObject());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void close() {
|
public void close() {
|
||||||
dataTypeManager.close();
|
if (dataTypeManager != null) {
|
||||||
archiveManager.archiveClosed(this);
|
dataTypeManager.close();
|
||||||
dataTypeManager = null;
|
archiveManager.archiveClosed(this);
|
||||||
|
dataTypeManager = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveAs(Component component) throws IOException {
|
public void saveAs(Component component) throws IOException {
|
||||||
|
if (dataTypeManager == null) {
|
||||||
|
throw new ClosedException();
|
||||||
|
}
|
||||||
archiveManager.saveAs(dataTypeArchive);
|
archiveManager.saveAs(dataTypeArchive);
|
||||||
sourceDomainFile = dataTypeArchive.getDomainFile(); // update with new domain file
|
sourceDomainFile = dataTypeArchive.getDomainFile(); // update with new domain file
|
||||||
dataTypeArchive.updateID();
|
dataTypeManager.updateID();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -570,11 +570,6 @@ public class DataTypeArchiveDB extends DomainObjectAdapterDB implements DataType
|
||||||
super.updateMetadata();
|
super.updateMetadata();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateID() {
|
|
||||||
dataTypeManager.updateID();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void domainObjectRestored() {
|
protected void domainObjectRestored() {
|
||||||
super.domainObjectRestored();
|
super.domainObjectRestored();
|
||||||
|
|
|
@ -38,22 +38,18 @@ public interface DataTypeArchive extends DataTypeManagerDomainObject {
|
||||||
public static final Date JANUARY_1_1970 = new Date(0);
|
public static final Date JANUARY_1_1970 = new Date(0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the associated standalone data type manager.
|
* {@return the associated standalone data type manager.}
|
||||||
* @return the data type manager.
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public StandAloneDataTypeManager getDataTypeManager();
|
public StandAloneDataTypeManager getDataTypeManager();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the default pointer size as it may be stored within the data type archive.
|
* {@return the default pointer size as it may be stored within the data type archive.}
|
||||||
* @return default pointer size.
|
|
||||||
*/
|
*/
|
||||||
public int getDefaultPointerSize();
|
public int getDefaultPointerSize();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the creation date of this data type archive.
|
* {@return the creation date of this data type archive or Jan 1, 1970 if unknown.}
|
||||||
* existed, then Jan 1, 1970 is returned.
|
|
||||||
* @return the creation date of this data type archive
|
|
||||||
*/
|
*/
|
||||||
public Date getCreationDate();
|
public Date getCreationDate();
|
||||||
|
|
||||||
|
@ -69,6 +65,4 @@ public interface DataTypeArchive extends DataTypeManagerDomainObject {
|
||||||
*/
|
*/
|
||||||
public void invalidate();
|
public void invalidate();
|
||||||
|
|
||||||
public void updateID();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue