Class ObjectPropertyMapDB
- java.lang.Object
-
- ghidra.program.database.properties.PropertyMapDB
-
- ghidra.program.database.properties.ObjectPropertyMapDB
-
- All Implemented Interfaces:
ObjectPropertyMap
,PropertyMap
public class ObjectPropertyMapDB extends PropertyMapDB implements ObjectPropertyMap
Property manager that deals with properties that are of a Saveable Object type and store within a database table.
-
-
Field Summary
-
Fields inherited from class ghidra.program.database.properties.PropertyMapDB
addrMap, cache, changeMgr, dbHandle, DEFAULT_CACHE_SIZE, errHandler, lock, name, NO_SCHEMA_FIELD_NAMES, NO_SCHEMA_FIELDS, PROPERTY_VALUE_COL, propertyTable, schema, SCHEMA_FIELD_NAMES
-
-
Constructor Summary
Constructors Constructor Description ObjectPropertyMapDB(DBHandle dbHandle, int openMode, ErrorHandler errHandler, ChangeManager changeMgr, AddressMap addrMap, java.lang.String name, java.lang.Class<? extends Saveable> saveableObjectClass, TaskMonitor monitor, boolean supportsPrivate)
Construct an Saveable object property map.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(Address addr, Saveable value)
Add an object value at the specified address.void
applyValue(PropertyVisitor visitor, Address addr)
Applies a property value at the indicated address without knowing its type (String, int, long, etc.) by using the property visitor.protected void
createTable()
Create the necessary table(s) to support this property.java.lang.Object
getObject(Address addr)
Returns the property value stored at the specified address or null if no property found.java.lang.Class<?>
getObjectClass()
Returns Saveable object class.protected java.lang.Class<?>
getPropertyFieldClass()
NOTE: Custom schema is utilized.static java.lang.Class<? extends Saveable>
getSaveableClassForName(java.lang.String classPath)
Returns the class for the indicated class path name.-
Methods inherited from class ghidra.program.database.properties.PropertyMapDB
createTable, delete, getAddressKeyIterator, getAddressKeyIterator, getAddressKeyIterator, getFirstPropertyAddress, getLastPropertyAddress, getName, getNextPropertyAddress, getPreviousPropertyAddress, getPropertyIterator, getPropertyIterator, getPropertyIterator, getPropertyIterator, getPropertyIterator, getPropertyIterator, getSize, getTableName, getTableName, hasProperty, intersects, intersects, invalidateCache, moveRange, remove, removeRange, setCacheSize
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface ghidra.program.model.util.PropertyMap
getFirstPropertyAddress, getLastPropertyAddress, getName, getNextPropertyAddress, getPreviousPropertyAddress, getPropertyIterator, getPropertyIterator, getPropertyIterator, getPropertyIterator, getPropertyIterator, getPropertyIterator, getSize, hasProperty, intersects, intersects, moveRange, remove, removeRange
-
-
-
-
Constructor Detail
-
ObjectPropertyMapDB
public ObjectPropertyMapDB(DBHandle dbHandle, int openMode, ErrorHandler errHandler, ChangeManager changeMgr, AddressMap addrMap, java.lang.String name, java.lang.Class<? extends Saveable> saveableObjectClass, TaskMonitor monitor, boolean supportsPrivate) throws VersionException, CancelledException, java.io.IOException
Construct an Saveable object property map.- Parameters:
dbHandle
- database handle.openMode
- the mode that the program was opened in.errHandler
- database error handler.changeMgr
- change manager for event notificationaddrMap
- address map.name
- property name.monitor
- progress monitor that is only used when upgrading- Throws:
CancelledException
- if the user cancels the upgrade operation.java.io.IOException
- if a database io error occurs.VersionException
- the map version is incompatible with the current Saveable object class version. This will never be thrown if upgrade is true.
-
-
Method Detail
-
getSaveableClassForName
public static java.lang.Class<? extends Saveable> getSaveableClassForName(java.lang.String classPath)
Returns the class for the indicated class path name. If the class can't be determined, the GenericSaveable class is returned.- Parameters:
classPath
- the class path name of the desired class.- Returns:
- the class or a GenericSaveable.
-
add
public void add(Address addr, Saveable value)
Description copied from interface:ObjectPropertyMap
Add an object value at the specified address.- Specified by:
add
in interfaceObjectPropertyMap
- Parameters:
addr
- address for the propertyvalue
- value of the property
-
getObjectClass
public java.lang.Class<?> getObjectClass()
Description copied from interface:ObjectPropertyMap
Returns Saveable object class.- Specified by:
getObjectClass
in interfaceObjectPropertyMap
-
getObject
public java.lang.Object getObject(Address addr)
Description copied from interface:PropertyMap
Returns the property value stored at the specified address or null if no property found.- Specified by:
getObject
in interfacePropertyMap
- Parameters:
addr
- property address- Returns:
- property value
-
applyValue
public void applyValue(PropertyVisitor visitor, Address addr)
Description copied from interface:PropertyMap
Applies a property value at the indicated address without knowing its type (String, int, long, etc.) by using the property visitor.- Specified by:
applyValue
in interfacePropertyMap
- Parameters:
visitor
- the property visitor that lets you apply the property without knowing its specific type ahead of time.addr
- the address where the property is to be applied.
-
getPropertyFieldClass
protected java.lang.Class<?> getPropertyFieldClass()
NOTE: Custom schema is utilized.
-
createTable
protected void createTable()
Create the necessary table(s) to support this property. Schema will vary depending upon Saveable object.
-
-