User Tools

Site Tools


05_developer_tutorials:dev-guide:disposable-node

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
05_developer_tutorials:dev-guide:disposable-node [2025/02/19 15:51] – removed - external edit (Unknown date) 127.0.0.105_developer_tutorials:dev-guide:disposable-node [2025/02/19 15:51] (current) – ↷ Links adapted because of a move operation gaetan
Line 1: Line 1:
 +===== Disposable Nodes/Fields =====
 +
 +A Node is considered deleted when it is removed from the graph. The Node is made "transient", //i.e.// it is not handled by the [[https://javadoc.grogra.de/graph/de/grogra/persistence/PersistenceManager.html|persistence manager]] anymore. 
 +
 +Once a Node is "transient" it will be automatically garbage collected by Java. 
 +However, a Node can have attributes (fields in java) that require a specific dispose method (e.g [[01_user_documentation:groimp-platform:pointcloud|cloud]] objects, or [[01_user_documentation:groimp-platform:graphexplorerstructure|secondary graph]]).
 +
 +In most cases, the nodes are not "informed" that they are made transient, thus it is not convenient to add a listener on them (see the GraphManager's [[05_developer_tutorials:dev-guide:base-objects:graph-listeners|listeners]]). Indeed, when a Node is deleted, if it has connected edges of Node that are not connected to the graph anymore, they all are deleted. But only the first one is visited.  
 +
 +To ensure an object (that can be used as a Node's attribute) is disposed properly it should implements the [[https://javadoc.grogra.de/graph/de/grogra/persistence/DisposableField.html|DisposableField]] interface.
 +
 +==== DisposableField interface ==== 
 +
 +In order to make the GraphManager dispose an attribute of a Node it (the field) simply needs to implement DisposableField.
 +