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_CLASSES, NO_SCHEMA_FIELD_NAMES, 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 voidadd(Address addr, Saveable value)Add an object value at the specified address.voidapplyValue(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 voidcreateTable()Create the necessary table(s) to support this property.java.lang.ObjectgetObject(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:ObjectPropertyMapAdd an object value at the specified address.- Specified by:
addin interfaceObjectPropertyMap- Parameters:
addr- address for the propertyvalue- value of the property- See Also:
ObjectPropertyMap.add(ghidra.program.model.address.Address, ghidra.util.Saveable)
-
getObjectClass
public java.lang.Class<?> getObjectClass()
Description copied from interface:ObjectPropertyMapReturns Saveable object class.- Specified by:
getObjectClassin interfaceObjectPropertyMap- See Also:
ObjectPropertyMap.getObjectClass()
-
getObject
public java.lang.Object getObject(Address addr)
Description copied from interface:PropertyMapReturns the property value stored at the specified address or null if no property found.- Specified by:
getObjectin interfacePropertyMap- Parameters:
addr- property address- Returns:
- property value
- See Also:
PropertyMap.getObject(ghidra.program.model.address.Address)
-
applyValue
public void applyValue(PropertyVisitor visitor, Address addr)
Description copied from interface:PropertyMapApplies a property value at the indicated address without knowing its type (String, int, long, etc.) by using the property visitor.- Specified by:
applyValuein 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.- See Also:
PropertyMap.applyValue(ghidra.util.prop.PropertyVisitor, ghidra.program.model.address.Address)
-
getPropertyFieldClass
protected java.lang.Class<?> getPropertyFieldClass()
NOTE: Custom schema is utilized.- See Also:
ghidra.program.database.properties.PropertyMapDB#getPropertyFieldClass()
-
createTable
protected void createTable()
Create the necessary table(s) to support this property. Schema will vary depending upon Saveable object.
-
-