Tulip  5.0.0
Large graphs analysis and drawing
tlp::AbstractProperty< Tnode, Tedge, Tprop > Class Template Reference

#include <AbstractProperty.h>

+ Inheritance diagram for tlp::AbstractProperty< Tnode, Tedge, Tprop >:

Classes

class  MetaValueCalculator
 

Public Member Functions

 AbstractProperty (Graph *, const std::string &n="")
 
int compare (const node n1, const node n2) const
 
int compare (const edge e1, const edge e2) const
 
virtual void computeMetaValue (node n, Graph *sg, Graph *mg)
 
virtual void computeMetaValue (edge e, tlp::Iterator< edge > *itE, Graph *mg)
 
virtual bool copy (const node destination, const node source, PropertyInterface *property, bool ifNotDefault=false)
 
virtual bool copy (const edge destination, const edge source, PropertyInterface *property, bool ifNotDefault=false)
 
virtual void copy (PropertyInterface *property)
 
virtual unsigned int edgeValueSize () const
 
void erase (const node n)
 
void erase (const edge e)
 
virtual DataMem * getEdgeDataMemValue (const edge e) const
 
virtual DataMem * getEdgeDefaultDataMemValue () const
 
virtual std::string getEdgeDefaultStringValue () const
 
Tedge::RealType getEdgeDefaultValue () const
 
virtual tlp::Iterator< edge > * getEdgesEqualTo (typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v, const Graph *g=NULL) const
 
virtual std::string getEdgeStringValue (const edge e) const
 
tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue getEdgeValue (const edge e) const
 
virtual DataMem * getNodeDataMemValue (const node n) const
 
virtual DataMem * getNodeDefaultDataMemValue () const
 
virtual std::string getNodeDefaultStringValue () const
 
Tnode::RealType getNodeDefaultValue () const
 
virtual tlp::Iterator< node > * getNodesEqualTo (typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v, const Graph *g=NULL) const
 
virtual std::string getNodeStringValue (const node n) const
 
tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue getNodeValue (const node n) const
 
virtual DataMem * getNonDefaultDataMemValue (const node n) const
 
virtual DataMem * getNonDefaultDataMemValue (const edge e) const
 
virtual tlp::Iterator< edge > * getNonDefaultValuatedEdges (const Graph *g=NULL) const
 
virtual tlp::Iterator< node > * getNonDefaultValuatedNodes (const Graph *g=NULL) const
 
virtual unsigned int nodeValueSize () const
 
virtual unsigned int numberOfNonDefaultValuatedEdges (const Graph *=NULL) const
 
virtual unsigned int numberOfNonDefaultValuatedNodes (const Graph *g=NULL) const
 
virtual AbstractProperty< Tnode, Tedge, Tprop > & operator= (AbstractProperty< Tnode, Tedge, Tprop > &prop)
 
virtual bool readEdgeDefaultValue (std::istream &)
 
virtual bool readEdgeValue (std::istream &, edge)
 
virtual bool readNodeDefaultValue (std::istream &)
 
virtual bool readNodeValue (std::istream &, node)
 
virtual void setAllEdgeDataMemValue (const DataMem *v)
 
virtual bool setAllEdgeStringValue (const std::string &inV)
 
virtual bool setAllEdgeStringValue (const std::string &inV, const Graph *graph)
 
virtual void setAllEdgeValue (typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v)
 
virtual void setAllEdgeValue (typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v, const Graph *graph)
 
virtual void setAllNodeDataMemValue (const DataMem *v)
 
virtual bool setAllNodeStringValue (const std::string &inV)
 
virtual bool setAllNodeStringValue (const std::string &inV, const Graph *graph)
 
virtual void setAllNodeValue (typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v)
 
virtual void setAllNodeValue (typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v, const Graph *graph)
 
virtual void setEdgeDataMemValue (const edge e, const DataMem *v)
 
virtual bool setEdgeDefaultStringValue (const std::string &inV)
 
virtual void setEdgeDefaultValue (typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v)
 
virtual bool setEdgeStringValue (const edge inE, const std::string &inV)
 
virtual void setEdgeValue (const edge e, typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v)
 
virtual void setMetaValueCalculator (PropertyInterface::MetaValueCalculator *mvCalc)
 
virtual void setNodeDataMemValue (const node n, const DataMem *v)
 
virtual bool setNodeDefaultStringValue (const std::string &inV)
 
virtual void setNodeDefaultValue (typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v)
 
virtual bool setNodeStringValue (const node inN, const std::string &inV)
 
virtual void setNodeValue (const node n, typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v)
 
virtual bool setStringValueToGraphEdges (const std::string &inV, const Graph *graph)
 
virtual bool setStringValueToGraphNodes (const std::string &inV, const Graph *graph)
 
virtual void setValueToGraphEdges (typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v, const Graph *graph)
 
virtual void setValueToGraphNodes (typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v, const Graph *graph)
 
virtual void writeEdgeDefaultValue (std::ostream &) const
 
virtual void writeEdgeValue (std::ostream &, edge) const
 
virtual void writeNodeDefaultValue (std::ostream &) const
 
virtual void writeNodeValue (std::ostream &, node) const
 

Protected Member Functions

virtual void clone_handler (AbstractProperty< Tnode, Tedge, Tprop > &)
 

Protected Attributes

Tedge::RealType edgeDefaultValue
 
MutableContainer< typename Tedge::RealType > edgeProperties
 
Tnode::RealType nodeDefaultValue
 
MutableContainer< typename Tnode::RealType > nodeProperties
 

Friends

class Graph
 
class GraphView
 

Detailed Description

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
class tlp::AbstractProperty< Tnode, Tedge, Tprop >

This class extends upon PropertyInterface, and adds type-safe methods to get and set the node and edge values, through the magic of template programming.

Nodes and Edges can have different types (e.g. tlp::LayoutProperty has tlp::PointType as node type and tlp::LineType as edge type), but most of the time they have the same type (e.g. tlp::DoubleProperty, tlp::IntegerProperty).

Some of the pure virtual functions of PropertyInterface are implemented in this class (e.g. erase()).

The actual data is stored in this class, and it manages the default values.

Definition at line 54 of file AbstractProperty.h.

Member Function Documentation

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual void tlp::AbstractProperty< Tnode, Tedge, Tprop >::clone_handler ( AbstractProperty< Tnode, Tedge, Tprop > &  )
inlineprotectedvirtual

Enable to clone part of sub_class.

Definition at line 562 of file AbstractProperty.h.

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::erase ( const node  n)
inline

Resets the value of a node to the default value.

Parameters
nThe node to reset the value of.

Definition at line 240 of file AbstractProperty.h.

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::erase ( const edge  e)
inline

Resets the value of an edge to the default value.

Parameters
eThe edge to reset the value of.

Definition at line 251 of file AbstractProperty.h.

template<class Tnode , class Tedge , class Tprop >
Tedge::RealType tlp::AbstractProperty< Tnode, Tedge, Tprop >::getEdgeDefaultValue ( ) const
inline

Gets the default edge value of the property.

Returns
The default value of edges.

Definition at line 39 of file AbstractProperty.cxx.

+ Here is the caller graph for this function:

template<class Tnode , class Tedge, class Tprop >
tlp::Iterator< tlp::edge > * tlp::AbstractProperty< Tnode, Tedge, Tprop >::getEdgesEqualTo ( typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue  v,
const Graph g = NULL 
) const
virtual

Returns an iterator through all edges belonging to g whose associated value is equal to val. If g is NULL, the graph given when creating the property is considered.

Definition at line 71 of file AbstractProperty.cxx.

template<class Tnode , class Tedge , class Tprop >
tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue tlp::AbstractProperty< Tnode, Tedge, Tprop >::getEdgeValue ( const edge  e) const
inline

Returns the value associated to the edge e in this property. If there is no value, it returns the default edge value.

Parameters
eThe edge for which we want to get the value of the property.
Returns
:StoredType< Tedge::RealType >::ReturnedConstValue The value of the property for this edge.

Definition at line 50 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class Tnode , class Tedge , class Tprop >
Tnode::RealType tlp::AbstractProperty< Tnode, Tedge, Tprop >::getNodeDefaultValue ( ) const
inline

Gets the default node value of the property.

Returns
The default value of nodes.

Definition at line 34 of file AbstractProperty.cxx.

+ Here is the caller graph for this function:

template<class Tnode, class Tedge , class Tprop >
tlp::Iterator< tlp::node > * tlp::AbstractProperty< Tnode, Tedge, Tprop >::getNodesEqualTo ( typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue  v,
const Graph g = NULL 
) const
virtual

Returns an iterator through all nodes belonging to g whose associated value is equal to val. If g is NULL, the graph given when creating the property is considered.

Definition at line 56 of file AbstractProperty.cxx.

template<class Tnode , class Tedge , class Tprop >
tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue tlp::AbstractProperty< Tnode, Tedge, Tprop >::getNodeValue ( const node  n) const
inline

Returns the value associated with the node n in this property. If there is no value, it returns the default node value.

Parameters
nThe node for which we want to get the value of the property.
Returns
:StoredType< Tnode::RealType >::ReturnedConstValue The value of the property for this node.

Definition at line 44 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

template<class Tnode, class Tedge, class Tprop = PropertyInterface>
virtual AbstractProperty<Tnode,Tedge,Tprop>& tlp::AbstractProperty< Tnode, Tedge, Tprop >::operator= ( AbstractProperty< Tnode, Tedge, Tprop > &  prop)
inlinevirtual

This operator overload allows to copy a property using the following syntax :

IntegerProperty* shape = graph->getProperty<IntegerProperty>("viewShape");
IntegerProperty* backup = graph->getProperty<IntegerProperty>("shapeBackup");
*backup = *shape; // all the values from 'shape' will be copied into 'backup'.
Parameters
propThe property to copy the values from.
Returns
This property with the values copied.

Definition at line 266 of file AbstractProperty.h.

template<class Tnode , class Tedge, class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setAllEdgeValue ( typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue  v)
virtual

Sets the value of all edges and notify the observers. All previous values are lost and the given value is assigned as the default one to the future added edges.

Parameters
vThe value to set to all edges.

Definition at line 210 of file AbstractProperty.cxx.

template<class Tnode , class Tedge, class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setAllEdgeValue ( typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue  v,
const Graph graph 
)
virtual

Sets the value of all edges in a graph and notify the observers. Only the edges from that graph will have their value modified in the property and the default edge value will not be modified.

Since
Tulip 4.10
Deprecated:
Since Tulip 5.0 this method signature is deprecated, use method setValueToGraphEdges instead
Parameters
vThe value to set to all edges.
graphA graph that defines the set of edges
Warning
If the provided graph is not a descendant of the one associated to that property (including itself), no edge value will be modified.

Definition at line 218 of file AbstractProperty.cxx.

template<class Tnode, class Tedge , class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setAllNodeValue ( typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue  v)
virtual

Sets the value of all nodes and notify the observers. All previous values are lost and the given value is assigned as the default one to the future added nodes.

Parameters
vThe value to set to all nodes.

Definition at line 102 of file AbstractProperty.cxx.

template<class Tnode, class Tedge , class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setAllNodeValue ( typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue  v,
const Graph graph 
)
virtual

Sets the value of all nodes in a graph and notify the observers. Only the nodes from that graph will have their value modified in the property and the default node value will not be modified.

Since
Tulip 4.10
Deprecated:
Since Tulip 5.0 this method signature is deprecated, use method setValueToGraphNodes instead
Parameters
vThe value to set to all nodes.
graphA graph that defines the set of nodes
Warning
If the provided graph is not a descendant of the one associated to that property (including itself), no node value will be modified.

Definition at line 151 of file AbstractProperty.cxx.

template<class Tnode , class Tedge, class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setEdgeDefaultValue ( typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue  v)
virtual

Sets the value assigned as the default one to the future added edges.

Since
Tulip 5.0
Parameters
valuethe new value to set on future added edges.
Returns
Whether the given string was a correct representation for this property's type. If not, the default value is not set.

Definition at line 168 of file AbstractProperty.cxx.

template<class Tnode , class Tedge, class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setEdgeValue ( const edge  e,
typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue  v 
)
virtual

Set the value of an edge and notify the observers of a modification.

Parameters
eThe edge to set the value of.
vThe value to affect for this edge.

Definition at line 94 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

template<class Tnode, class Tedge , class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setNodeDefaultValue ( typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue  v)
virtual

Sets the value assigned as the default one to the future added nodes.

Since
Tulip 5.0
Parameters
vthe new value to set on future added nodes.
Returns
Whether the given string was a correct representation for this property's type. If not, the default value is not set.

Definition at line 110 of file AbstractProperty.cxx.

template<class Tnode, class Tedge , class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setNodeValue ( const node  n,
typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue  v 
)
virtual

Sets the value of a node and notify the observers of a modification.

Parameters
nThe node to set the value of.
vThe value to affect for this node.
Examples:
graph_display/graph_display.cpp.

Definition at line 86 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

template<class Tnode , class Tedge, class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setValueToGraphEdges ( typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue  v,
const Graph graph 
)
virtual

Sets the value of all edges in a graph and notify the observers. Only the edges from that graph will have their value modified in the property and the default edge value will not be modified.

Since
Tulip 5.0
Parameters
vThe value to set to all edges.
graphA graph on which to modify
Warning
If the provided graph is not a descendant of the one associated to that property (including itself), no edge value will be modified.

Definition at line 223 of file AbstractProperty.cxx.

+ Here is the call graph for this function:

template<class Tnode, class Tedge , class Tprop >
void tlp::AbstractProperty< Tnode, Tedge, Tprop >::setValueToGraphNodes ( typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue  v,
const Graph graph 
)
virtual

Sets the value of all nodes in a graph and notify the observers. Only the nodes from that graph will have their value modified in the property and the default node value will not be modified.

Since
Tulip 5.0
Parameters
vThe value to set to all nodes.
graphA graph that defines the set of nodes
Warning
If the provided graph is not a descendant of the one associated to that property (including itself), no node value will be modified.

Definition at line 156 of file AbstractProperty.cxx.

+ Here is the call graph for this function: