Tulip  6.0.0
Large graphs analysis and drawing
tlp::GraphProperty Class Reference

#include <GraphProperty.h>

+ Inheritance diagram for tlp::GraphProperty:
+ Collaboration diagram for tlp::GraphProperty:

Public Member Functions

 GraphProperty (Graph *, const std::string &n="")
 
PropertyInterfaceclonePrototype (Graph *, const std::string &) const override
 
unsigned int edgeValueSize () const override
 
const std::string & getTypename () const override
 
bool hasNonDefaultValue (const edge e) const
 
bool hasNonDefaultValue (const node n) const
 
unsigned int nodeValueSize () const override
 
virtual AbstractProperty< Tnode, Tedge, Tprop > & operator= (AbstractProperty< Tnode, Tedge, Tprop > &prop)
 
bool readNodeDefaultValue (std::istream &iss) override
 
bool readNodeValue (std::istream &iss, node n) override
 
bool setAllEdgeStringValue (const std::string &v) override
 
bool setAllNodeStringValue (const std::string &v) override
 
void setAllNodeValue (tlp::StoredType< GraphType::RealType >::ReturnedConstValue g) override
 
bool setEdgeStringValue (const edge e, const std::string &v) override
 
bool setNodeStringValue (const node n, const std::string &v) override
 
void setNodeValue (const node n, tlp::StoredType< GraphType::RealType >::ReturnedConstValue g) override
 
bool setStringValueToGraphEdges (const std::string &v, const tlp::Graph *graph) override
 
bool setStringValueToGraphNodes (const std::string &v, const tlp::Graph *graph) override
 
void setValueToGraphNodes (tlp::StoredType< GraphType::RealType >::ReturnedConstValue g, const Graph *graph) override
 
void treatEvent (const Event &) override
 
- Public Member Functions inherited from tlp::AbstractProperty< Tnode, Tedge, Tprop >
 AbstractProperty (Graph *, const std::string &n="")
 
int compare (const edge e1, const edge e2) const override
 
int compare (const node n1, const node n2) const override
 
void computeMetaValue (edge e, tlp::Iterator< edge > *itE, Graph *mg) override
 
void computeMetaValue (node n, Graph *sg, Graph *mg) override
 
bool copy (const edge destination, const edge source, PropertyInterface *property, bool ifNotDefault=false) override
 
bool copy (const node destination, const node source, PropertyInterface *property, bool ifNotDefault=false) override
 
void copy (PropertyInterface *property) override
 
void erase (const edge e) override
 
void erase (const node n) override
 
DataMem * getEdgeDataMemValue (const edge e) const override
 
DataMem * getEdgeDefaultDataMemValue () const override
 
std::string getEdgeDefaultStringValue () const override
 
Tedge::RealType getEdgeDefaultValue () const
 
virtual tlp::Iterator< edge > * getEdgesEqualTo (typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v, const Graph *g=nullptr) const
 
std::string getEdgeStringValue (const edge e) const override
 
tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue getEdgeValue (const edge e) const
 
DataMem * getNodeDataMemValue (const node n) const override
 
DataMem * getNodeDefaultDataMemValue () const override
 
std::string getNodeDefaultStringValue () const override
 
Tnode::RealType getNodeDefaultValue () const
 
virtual tlp::Iterator< node > * getNodesEqualTo (typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v, const Graph *g=nullptr) const
 
std::string getNodeStringValue (const node n) const override
 
tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue getNodeValue (const node n) const
 
DataMem * getNonDefaultDataMemValue (const edge e) const override
 
DataMem * getNonDefaultDataMemValue (const node n) const override
 
tlp::Iterator< edge > * getNonDefaultValuatedEdges (const Graph *g=nullptr) const override
 
tlp::Iterator< node > * getNonDefaultValuatedNodes (const Graph *g=nullptr) const override
 
bool hasNonDefaultValuatedEdges (const Graph *g=nullptr) const override
 
bool hasNonDefaultValuatedNodes (const Graph *g=nullptr) const override
 
unsigned int numberOfNonDefaultValuatedEdges (const Graph *=nullptr) const override
 
unsigned int numberOfNonDefaultValuatedNodes (const Graph *g=nullptr) const override
 
virtual AbstractProperty< Tnode, Tedge, Tprop > & operator= (AbstractProperty< Tnode, Tedge, Tprop > &prop)
 
constexpr edgeValueRef operator[] (edge e)
 
tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue operator[] (edge e) const
 
constexpr nodeValueRef operator[] (node n)
 
const tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue operator[] (node n) const
 
bool readEdgeDefaultValue (std::istream &) override
 
bool readEdgeValue (std::istream &, edge) override
 
void setAllEdgeDataMemValue (const DataMem *v) override
 
virtual void setAllEdgeValue (typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v)
 
void setAllNodeDataMemValue (const DataMem *v) override
 
virtual void setAllNodeValue (typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v)
 
void setEdgeDataMemValue (const edge e, const DataMem *v) override
 
bool setEdgeDefaultStringValue (const std::string &inV) override
 
virtual void setEdgeDefaultValue (typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v)
 
virtual void setEdgeValue (const edge e, typename tlp::StoredType< typename Tedge::RealType >::ReturnedConstValue v)
 
void setMetaValueCalculator (PropertyInterface::MetaValueCalculator *mvCalc) override
 
void setNodeDataMemValue (const node n, const DataMem *v) override
 
bool setNodeDefaultStringValue (const std::string &inV) override
 
virtual void setNodeDefaultValue (typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v)
 
virtual void setNodeValue (const node n, typename tlp::StoredType< typename Tnode::RealType >::ReturnedConstValue v)
 
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)
 
void writeEdgeDefaultValue (std::ostream &) const override
 
void writeEdgeValue (std::ostream &, edge) const override
 
void writeNodeDefaultValue (std::ostream &) const override
 
void writeNodeValue (std::ostream &, node) const override
 
- Public Member Functions inherited from tlp::PropertyInterface
virtual const std::string & getCppClassName () const =0
 
tlp::GraphgetGraph () const
 
MetaValueCalculatorgetMetaValueCalculator ()
 
const std::string & getName () const
 
constexpr edgeStringValueRef operator[] (edge e)
 
std::string operator[] (edge e) const
 
constexpr nodeStringValueRef operator[] (node n)
 
bool rename (const std::string &newName)
 
- Public Member Functions inherited from tlp::Observable
void addListener (Observable &listener) const
 
void addListener (Observable *const listener) const
 
void addObserver (Observable &observer) const
 
void addObserver (Observable *const observer) const
 
unsigned int countListeners () const
 
unsigned int countObservers () const
 
unsigned int getReceived () const
 
unsigned int getSent () const
 
void removeListener (Observable &listener) const
 
void removeListener (Observable *const listener) const
 
void removeObserver (Observable &observer) const
 
void removeObserver (Observable *const observer) const
 

Public Attributes

 DEFINE_GET_CPP_CLASS_NAME
 

Static Public Attributes

static const std::string propertyTypename
 

Friends

class GraphAbstract
 

Additional Inherited Members

- Static Public Member Functions inherited from tlp::Observable
static void disableEventNotification ()
 
static void enableEventNotification ()
 
static tlp::node getNode (const tlp::Observable *obs)
 
static ObservablegetObject (tlp::node n)
 
static const tlp::VectorGraph & getObservableGraph ()
 
static unsigned int getScheduled (tlp::node n)
 
static void holdObservers ()
 
static bool isAlive (tlp::node n)
 
static unsigned int observersHoldCounter ()
 
static void unholdObservers ()
 
- Protected Member Functions inherited from tlp::AbstractProperty< Tnode, Tedge, Tprop >
virtual void clone_handler (AbstractProperty< Tnode, Tedge, Tprop > &)
 
- Protected Member Functions inherited from tlp::PropertyInterface
void notifyAfterSetAllEdgeValue ()
 
void notifyAfterSetAllNodeValue ()
 
void notifyAfterSetEdgeValue (const edge e)
 
void notifyAfterSetNodeValue (const node n)
 
void notifyBeforeSetAllEdgeValue ()
 
void notifyBeforeSetAllNodeValue ()
 
void notifyBeforeSetEdgeValue (const edge e)
 
void notifyBeforeSetNodeValue (const node n)
 
void notifyDestroy ()
 
void notifyRename (const std::string &newName)
 
- Protected Member Functions inherited from tlp::Observable
 Observable (const Observable &)
 
bool hasOnlookers () const
 
void observableDeleted ()
 
Observableoperator= (const Observable &)
 
void sendEvent (const Event &message)
 
virtual void treatEvents (const std::vector< Event > &events)
 
- Protected Attributes inherited from tlp::AbstractProperty< Tnode, Tedge, Tprop >
Tedge::RealType edgeDefaultValue
 
MutableContainer< typename Tedge::RealType > edgeProperties
 
Tnode::RealType nodeDefaultValue
 
MutableContainer< typename Tnode::RealType > nodeProperties
 
- Protected Attributes inherited from tlp::PropertyInterface
Graphgraph
 
MetaValueCalculatormetaValueCalculator
 
std::string name
 

Detailed Description

A graph property that maps a tlp::Graph* value to graph elements.

Warning
This property is mainly used into the meta node engine. Using GraphProperty outside of this system is strongly discouraged since it could lead to unwanted behavior.

Definition at line 42 of file GraphProperty.h.

Member Function Documentation

◆ clonePrototype()

PropertyInterface* tlp::GraphProperty::clonePrototype ( Graph graph,
const std::string &  name 
) const
overridevirtual

Creates a property of the same type (e.g. tlp::DoubleProperty) in the graph. The new property will not contain a copy of this property's values.

Parameters
graphThe Graph in which to create the new property.
nameThe name of the new property.
Returns
The newly created property.

Implements tlp::PropertyInterface.

◆ edgeValueSize()

unsigned int tlp::GraphProperty::edgeValueSize ( ) const
inlineoverridevirtual

Returns the size in bytes of an edge's value.

Returns
the size of a node's value (0 means the size is not fixed)

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

Definition at line 79 of file GraphProperty.h.

◆ getTypename()

const std::string& tlp::GraphProperty::getTypename ( ) const
inlineoverridevirtual

Gets a string describing the type of the property value (e.g. "graph", "double", "layout", "string", "integer", "color", "size").

Returns
The name of this property's type.

Implements tlp::PropertyInterface.

Definition at line 61 of file GraphProperty.h.

◆ nodeValueSize()

unsigned int tlp::GraphProperty::nodeValueSize ( ) const
inlineoverridevirtual

Returns the size in bytes of a node's value.

Returns
the size of a node's value (0 means the size is not fixed)

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

Definition at line 76 of file GraphProperty.h.

◆ operator=()

virtual AbstractProperty<Tnode, Tedge, Tprop>& tlp::AbstractProperty< Tnode, Tedge, Tprop >::operator=
inline

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'.
virtual PropertyInterface * getProperty(const std::string &name) const =0
Gets an existing property. In DEBUG mode an assertion checks the existence of the property.
Parameters
propThe property to copy the values from.
Returns
This property with the values copied.

Definition at line 371 of file AbstractProperty.h.

◆ readNodeDefaultValue()

bool tlp::GraphProperty::readNodeDefaultValue ( std::istream &  )
overridevirtual

Reads the nodes default value.

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

◆ readNodeValue()

bool tlp::GraphProperty::readNodeValue ( std::istream &  ,
node   
)
overridevirtual

Reads the value of a node.

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

◆ setAllEdgeStringValue()

bool tlp::GraphProperty::setAllEdgeStringValue ( const std::string &  value)
overridevirtual

Sets all the edges value to the value represented by the string. For some types, some parsing will be necessary (e.g. LayoutProperty). All previous values are lost and the represented value is assigned as the default one to the future added edges.

Parameters
valueA string representing the new value to set on all the edges.
Returns
Whether the given string was a correct representation for this property's type. If not, the values are not set.

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

◆ setAllNodeStringValue()

bool tlp::GraphProperty::setAllNodeStringValue ( const std::string &  value)
overridevirtual

Sets all the nodes value to the value represented by the string. For some types, some parsing will be necessary (e.g. LayoutProperty). All previous values are lost and the represented value is assigned as the default one to the future added nodes.

Parameters
valueA string representing the new value to set on all the nodes.
Returns
Whether the given string was a correct representation for this property's type. If not, the values are not set.

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

◆ setEdgeStringValue()

bool tlp::GraphProperty::setEdgeStringValue ( const edge  e,
const std::string &  value 
)
overridevirtual

Sets a new value on the edge, represented by the string parameter.

Parameters
eThe edge on which to set value on.
valueA string representing the value to set on the edge.
Returns
Whether the string was a correct representation for this property's type. If not, the value is not set.

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

◆ setNodeStringValue()

bool tlp::GraphProperty::setNodeStringValue ( const node  n,
const std::string &  value 
)
overridevirtual

Sets a new value on the node, represented by the string parameter.

Parameters
nThe node on which to set the new value.
valueA string representing the value to set on the node.
Returns
Whether the string was a correct representation for this property's type. If not, the value is not set.

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

◆ setStringValueToGraphEdges()

bool tlp::GraphProperty::setStringValueToGraphEdges ( const std::string &  value,
const tlp::Graph graph 
)
overridevirtual

Sets all the edges value to the value represented by the string for a graph. For some types, some parsing will be necessary (e.g. LayoutProperty). 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
valueA string representing the new value to set on all the 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 in it.
Returns
Whether the given string was a correct representation for this property's type. If not, the values are not set.

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

◆ setStringValueToGraphNodes()

bool tlp::GraphProperty::setStringValueToGraphNodes ( const std::string &  value,
const tlp::Graph graph 
)
overridevirtual

Sets all the nodes value to the value represented by the string for a graph. For some types, some parsing will be necessary (e.g. LayoutProperty). 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
valueA string representing the new value to set on all the 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 in it.
Returns
Whether the given string was a correct representation for this property's type. If not, the values are not set.

Reimplemented from tlp::AbstractProperty< Tnode, Tedge, Tprop >.

◆ treatEvent()

void tlp::GraphProperty::treatEvent ( const Event message)
overridevirtual

This function is called when events are sent to the Listeners, and Listeners only.

Is it passed a reference to the event that just happened.

Parameters
messageThe event that was sent.

Reimplemented from tlp::Observable.