Package OpenCAGE.GIF.RFG.Nodes

Class RFG_Node_Model

extends OpenCAGE.GIF.Typed.Typed_Node_Model

This is an abstract class knowing the RFG. It has direct access to the RFG nodes and maps its interface to the interface required by OpenCAGE.

Attributes

private RFGs.Node_Ptr Rfg_Node 

The RFG node this model belongs to.

private OpenCAGE.GIF.RFG.Views.RFG_View_Node_Model View 

The view, this node is in

private OpenCAGE.GIF.RFG.Nodes.RFG_Node_Type_Info Type_Info 

type information

private OpenCAGE.GIF.OC_ID ID 

unique id

private OpenCAGE.GIF.Edge_Models_Lists.List Incoming_Edges 

A list of incoming edges in this hierarchy

private OpenCAGE.GIF.Edge_Models_Lists.List Outgoing_Edges 

A list of outgoing edges in this hierarchy

private OpenCAGE.GIF.RFG.Nodes.RFG_Node_Observer RFG_Observer 

our observer to the rfg

Operations

public OpenCAGE.GIF.RFG.Nodes.RFG_Node_Model Get_Or_Create_Node( OpenCAGE.GIF.RFG.Views.RFG_View_Node_Model The_View, RFGs.Node_Ptr The_Node);

Creates a node model if it doesn't exist yet in the given view. Otherwise the already existing node model is returned.

public Ada.Strings.Unbounded.Unbounded_String Get_Annotation( Ada.Strings.Unbounded.Unbounded_String Key);

Get a node annotation. [This description is adopted from 'OpenCAGE.GIF.Node_Model'.]

public Boolean Get_Annotation( Ada.Strings.Unbounded.Unbounded_String Key);

Get a node annotation. [This description is adopted from 'OpenCAGE.GIF.Node_Model'.]

public Integer Get_Annotation( Ada.Strings.Unbounded.Unbounded_String Key);

Get a node annotation. [This description is adopted from 'OpenCAGE.GIF.Node_Model'.]

public Set_Annotation( Ada.Strings.Unbounded.Unbounded_String Key, Ada.Strings.Unbounded.Unbounded_String Value);

Set a node annotation. If it exists already, it is updated, else it is created. [This description is adopted from 'OpenCAGE.GIF.Node_Model'.]

public Set_Annotation( Ada.Strings.Unbounded.Unbounded_String Key, Boolean Value);

Set a node annotation. If it exists already, it is updated, else it is created. [This description is adopted from 'OpenCAGE.GIF.Node_Model'.]

public Set_Annotation( Ada.Strings.Unbounded.Unbounded_String Key, Integer Value);

Set a node annotation. If it exists already, it is updated, else it is created. [This description is adopted from 'OpenCAGE.GIF.Node_Model'.]

public Add_Incoming_Edge( OpenCAGE.GIF.Edge_Model Edge);

Adds an incoming edge. The edge will be updated as well. The edge must be an RFG_Edges (thanks to Ada's circular deps we can't put this into the signature).

public Remove_Incoming_Edge( OpenCAGE.GIF.Edge_Model Edge);

Removes an incoming edge. The edge will be updated as well. The egde must be an RFG_Edge (thanks to Ada's circular deps we can't put this into the signature).

public Add_Outgoing_Edge( OpenCAGE.GIF.Edge_Model Edge);

Adds an outgoing edge. The edge will be updated as well. The edge must be an RFG_Edges (thanks to Ada's circular deps we can't put this into the signature).

public Remove_Outgoing_Edge( OpenCAGE.GIF.Edge_Model Edge);

Removes an outgoing edge. The edge will be updated as well. The egde must be an RFG_Edge (thanks to Ada's circular deps we can't put this into the signature).

public OpenCAGE.GIF.Type_Infos.Type_Info Get_Type_Info(void);

public OpenCAGE.General.String_List.List Get_Attributes(void);

Return a list of attributes, which are grouped to this node

public OpenCAGE.GIF.Node_Model_Pot_Element Create_Pot_Element(void);

Create a pot element with the node contained in the pot element [This description is adopted from 'OpenCAGE.GIF.Node_Model'.]

public Boolean Is_Readonly(void);

Return the read/write status of a node. True = read only False = read and write [This description is adopted from 'OpenCAGE.GIF.Node_Model'.]

public Set_Readonly( Boolean Status);

Sets the read/write status of a node True = read only False = read and write [This description is adopted from 'OpenCAGE.GIF.Node_Model'.]

private Boolean Is_In_RFG_View( RFGs.View View);

returns true if this node is in the given view

public Read_Edges(void);

reads the edges from the rfg

public Add_Child( OpenCAGE.GIF.RFG.Nodes.RFG_Node_Model Child);

Adds a children to the node

public Remove_Child( OpenCAGE.GIF.RFG.Nodes.RFG_Node_Model Child);

Removes a children from the node

Class RFG_Node_Type_Info

extends OpenCAGE.GIF.RFG.Type_Infos.RFG_Type_Info

Attributes

private OpenCAGE.GIF.RFG.Nodes.RFG_Node_Model Node 

Operations

public Ada.Strings.Unbounded.Unbounded_String Get_Type_ID(void);

This operation returns the type of a graph model. [This description is adopted from 'OpenCAGE.GIF.Type_Infos.Type_Info'.]

Class RFG_Node_Observer

extends RFGs.Node_Observer

Attributes

private OpenCAGE.GIF.RFG.Nodes.RFG_Node_Model RFG_Node_Model 

Operations

public Destroying( RFGs.Node_Ptr Old_Node, RFGs.View View);

This message is sent if the node is destroying itself. [This description is adopted from 'RFGs.Node_Observer'.]

public Changed( RFGs.Node_Ptr Changed_Node, RFGs.View View);

This message is sent if the node has been changed. [This description is adopted from 'RFGs.Node_Observer'.]

public Incoming_Edge_Added( RFGs.Node_Ptr Node, RFGs.View View, RFGs.Edge_Ptr New_Edge);

This message is sent if an incoming edge has been added to the node. [This description is adopted from 'RFGs.Node_Observer'.]

public Outgoing_Edge_Added( RFGs.Node_Ptr Node, RFGs.View View, RFGs.Edge_Ptr New_Edge);

This message is sent if an outgoing edge has been added to the node. [This description is adopted from 'RFGs.Node_Observer'.]

public Incoming_Edge_Removed( RFGs.Node_Ptr Node, RFGs.View View, RFGs.Edge_Ptr Old_Edge);

This message is sent if an incoming edge has been removed from the node. [This description is adopted from 'RFGs.Node_Observer'.]

public Outgoing_Edge_Removed( RFGs.Node_Ptr Node, RFGs.View View, RFGs.Edge_Ptr Old_Edge);

This message is sent if an outgoing edge has been removed from the node. [This description is adopted from 'RFGs.Node_Observer'.]