---
name: "tlp_AbstractProperty"
section: "3tulip"
platform: "linux"
package: "tulip-doc"
version: "3.1.2-2.3"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/tlp_AbstractProperty"
---

# tlp\_AbstractProperty(3tulip)

## NAME

tlp::AbstractProperty -

## SYNOPSIS

`#include <AbstractProperty.h>`

Inherits **tlp::PropertyInterface**.

### Public Member Functions

**AbstractProperty** (**Graph** \*)\
 Tnode::RealType **getNodeDefaultValue** ()\
 Tedge::RealType **getEdgeDefaultValue** ()\
 ReturnType\< typename Tnode::RealType \>::Value **getNodeValue** (const **node** n)\
 ReturnType\< typename Tedge::RealType \>::Value **getEdgeValue** (const **edge** e)\
 void **setNodeValue** (const **node** n, const typename Tnode::RealType &v)\
 void **setEdgeValue** (const **edge** e, const typename Tedge::RealType &v)\
 void **setAllNodeValue** (const typename Tnode::RealType &v)\
 void **setAllEdgeValue** (const typename Tedge::RealType &v)\
 virtual void **erase** (const **node** n)\
 virtual void **erase** (const **edge** e)\
 virtual **AbstractProperty**\< Tnode, Tedge, TPROPERTY \> & **operator=** (**AbstractProperty**\< Tnode, Tedge, TPROPERTY \> &prop)\
 bool **compute** (const std::string &algorithm, std::string &msg, const **PropertyContext** &)\
 virtual std::string **getTypename** ()\
 virtual std::string **getNodeDefaultStringValue** ()\
 virtual std::string **getEdgeDefaultStringValue** ()\
 virtual std::string **getNodeStringValue** (const **node** n)\
 virtual std::string **getEdgeStringValue** (const **edge** e)\
 virtual bool **setNodeStringValue** (const **node** n, const std::string &v)\
 virtual bool **setEdgeStringValue** (const **edge** e, const std::string &v)\
 virtual bool **setAllNodeStringValue** (const std::string &v)\
 virtual bool **setAllEdgeStringValue** (const std::string &v)\
 virtual **Iterator**\< **node** \> \* **getNonDefaultValuatedNodes** ()\
 virtual **Iterator**\< **edge** \> \* **getNonDefaultValuatedEdges** ()\
 virtual **DataMem** \* **getNodeDefaultDataMemValue** ()\
 virtual **DataMem** \* **getEdgeDefaultDataMemValue** ()\
 virtual **DataMem** \* **getNodeDataMemValue** (const **node** n)\
 virtual **DataMem** \* **getEdgeDataMemValue** (const **edge** e)\
 virtual **DataMem** \* **getNonDefaultDataMemValue** (const **node** n)\
 virtual **DataMem** \* **getNonDefaultDataMemValue** (const **edge** e)\
 virtual void **setNodeDataMemValue** (const **node** n, const **DataMem** \*v)\
 virtual void **setEdgeDataMemValue** (const **edge** e, const **DataMem** \*v)\
 virtual void **setAllNodeDataMemValue** (const **DataMem** \*v)\
 virtual void **setAllEdgeDataMemValue** (const **DataMem** \*v)\

### Static Public Member Functions

static void **initFactory** ()\

### Static Public Attributes

static TLP\_SCOPE **TemplateFactory**\< **PropertyFactory**\< TPROPERTY \>, TPROPERTY, **PropertyContext** \> \* **factory**\

### Protected Member Functions

virtual void **clone\_handler** (**AbstractProperty**\< Tnode, Tedge, TPROPERTY \> &)\
 *Enable to clone part of sub\_class.*

### Protected Attributes

**MutableContainer**\< typename Tnode::RealType \> **nodeProperties**\
 **MutableContainer**\< typename Tedge::RealType \> **edgeProperties**\
 **Graph** \* **graph**\
 bool **circularCall**\
 Tnode::RealType **nodeDefaultValue**\
 Tedge::RealType **edgeDefaultValue**\

### Friends

class **GraphView**\

## Detailed Description

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> class tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>

This class is used to store a property of a graph. A property is a couple of two functions:

- •

  One from the set of nodes to a set of Tnode value

- •

  One from the set of edges to a set of Tedge value

A **AbstractProperty** can be connected or not to a **PropertyAlgorithm**. In the first case it can be seen as buffer beetween the property and the user. In the second case it is only a memory area for storing data. A **AbstractProperty** is an observable, so it can be observed by others objects.

## Constructor & Destructor Documentation

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::AbstractProperty (Graph \*)

## Member Function Documentation

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::clone\_handler (AbstractProperty\< Tnode, Tedge, TPROPERTY \> &)` [inline, protected, virtual]`

Enable to clone part of sub\_class.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> bool tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::compute (const std::string & algorithm, std::string & msg, const PropertyContext &)

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::erase (const edge e)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::erase (const node n)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual DataMem\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getEdgeDataMemValue (const edge e)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual DataMem\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getEdgeDefaultDataMemValue ()` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual std::string tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getEdgeDefaultStringValue ()` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> Tedge::RealType tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getEdgeDefaultValue () Returns the edge default value of the property proxy warnning: If the type is a pointer it can produce big memory leak if the user doesn't manage the memory himself

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual std::string tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getEdgeStringValue (const edge e)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> ReturnType\<typename Tedge::RealType\>::Value tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getEdgeValue (const edge e) Returns the value associated to the node n in this property. If the value is already fixed it is done in constant time. else if it is a computed property (plug-in), it calls the associated property If there is no value and no algorithms it returns the default value depending of the type.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual DataMem\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNodeDataMemValue (const node n)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual DataMem\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNodeDefaultDataMemValue ()` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual std::string tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNodeDefaultStringValue ()` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> Tnode::RealType tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNodeDefaultValue () Returns the node default value of the property proxy warnning: If the type is a pointer it can produce big memory leak if the user doesn't manage the memory himself

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual std::string tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNodeStringValue (const node n)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> ReturnType\<typename Tnode::RealType\>::Value tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNodeValue (const node n) Returns the value associated to the node n in this property. If the value is already fixed it is done in constant time. else if it is a computed property (plug-in), it calls the associated property If there is no value and no algorithms it returns the default value depending of the type.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual DataMem\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNonDefaultDataMemValue (const edge e)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual DataMem\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNonDefaultDataMemValue (const node n)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual Iterator\<edge\>\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNonDefaultValuatedEdges ()` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual Iterator\<node\>\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getNonDefaultValuatedNodes ()` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual std::string tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::getTypename ()` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> static void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::initFactory ()` [inline, static]`

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual AbstractProperty\<Tnode,Tedge,TPROPERTY\>& tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::operator= (AbstractProperty\< Tnode, Tedge, TPROPERTY \> & prop)` [inline, virtual]`

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setAllEdgeDataMemValue (const DataMem \* v)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual bool tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setAllEdgeStringValue (const std::string & v)` [virtual]`

Implements **tlp::PropertyInterface**.

Reimplemented in **tlp::GraphProperty**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setAllEdgeValue (const typename Tedge::RealType & v) Set the value of all edges and notify the observers

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setAllNodeDataMemValue (const DataMem \* v)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual bool tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setAllNodeStringValue (const std::string & v)` [virtual]`

Implements **tlp::PropertyInterface**.

Reimplemented in **tlp::GraphProperty**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setAllNodeValue (const typename Tnode::RealType & v) Set the value of all nodes and notify the observers

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setEdgeDataMemValue (const edge e, const DataMem \* v)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual bool tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setEdgeStringValue (const edge e, const std::string & v)` [virtual]`

Implements **tlp::PropertyInterface**.

Reimplemented in **tlp::GraphProperty**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setEdgeValue (const edge e, const typename Tedge::RealType & v) Set the value of an edge and notify the observers of a modification. Warning : When using computed property (plug-in), if one sets the value of a edge e, the plug-in won't be call for e.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setNodeDataMemValue (const node n, const DataMem \* v)` [virtual]`

Implements **tlp::PropertyInterface**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> virtual bool tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setNodeStringValue (const node n, const std::string & v)` [virtual]`

Implements **tlp::PropertyInterface**.

Reimplemented in **tlp::GraphProperty**.

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> void tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::setNodeValue (const node n, const typename Tnode::RealType & v) Set the value of a node n and notify the observers of a modification. Warning : When using computed property (plug-in), if one sets the value of a node n, the plug-in won't be call for n.

## Friends And Related Function Documentation

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> friend class GraphView` [friend]`

## Member Data Documentation

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> bool tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::circularCall` [protected]`

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> Tedge::RealType tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::edgeDefaultValue` [protected]`

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> MutableContainer\<typename Tedge::RealType\> tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::edgeProperties` [protected]`

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> TLP\_SCOPE TemplateFactory\< PropertyFactory\<TPROPERTY\>, TPROPERTY, PropertyContext \>\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::factory` [static]`

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> Graph\* tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::graph` [protected]`

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> Tnode::RealType tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::nodeDefaultValue` [protected]`

### template\<class Tnode, class Tedge, class TPROPERTY = PropertyAlgorithm\> MutableContainer\<typename Tnode::RealType\> tlp::AbstractProperty\< Tnode, Tedge, TPROPERTY \>::nodeProperties` [protected]`

## Author

Generated automatically by Doxygen for Tulip Graph Library from the source code.
