## class DiagramChecks

> implements generic checks for soft constraints on diagrams.

## Inheritance:

### Public Methods

  | DiagramChecks (Diagram *d, Graph *g)
  unsigned | CheckNodeCount (unsigned count, int nodeType, string &chkbuf) diagram should have count nodes of nodeType.
  unsigned | CheckNodeCount (unsigned min, unsigned max, int nodeType, string &chkbuf) diagram should have min <= count <= max nodes of nodeType.
  unsigned | CheckEdgeCount (unsigned count, int edgeType, string &chkbuf) diagram should have count edges of edgeType
  unsigned | CheckEdgeCount (unsigned min, unsigned max, int edgeType, string &chkbuf) diagram should have min <= count <= max edges of edgeType.
  unsigned | CheckDoubleIndexes (string &chkbuf) check that nodes unique indexes.
  unsigned | CheckNamelessNodes (int nodeType, string &chkbuf) diagram should have no nameless nodes of nodeType
  unsigned | CheckNamelessEdges (int edgeType, string &chkbuf) diagram should have no nameless edges of edgeType
  unsigned | CheckIllegalNodeNames (int nodeType, const string *name, string &chkbuf) diagram should have no nodes of nodeType named 'name'.
  unsigned | CheckIllegalEdgeNames (int edgeType, const string *name, string &chkbuf) diagram should have no edges of edgeType named 'name'.
  unsigned | CheckNamelessEdges ( int edgeType, int type1, int type2, string &chkbuf) diagram should have no nameless edges of edgeType between types.
  unsigned | CheckDoubleNamelessEdges (int edgeType, int type1, int type2, string &chkbuf) diagram shouldn't have double nameless edges between these types.
  unsigned | CheckDoubleNodes (int nodeType, string &chkbuf) diagram should not have multiple nodes of nodeType with same name.
  unsigned | CheckConnected (int nodeType, bool index, string &chkbuf) nodeType nodes should be connected (index: name or index in msg)
  unsigned | CheckConnected (int nodeType, int toNode, int min, int max, bool index, string &chkbuf) nodeType nodes should be connected (index: name or index in msg)
  unsigned | CheckJunctionCoherence (int nodeType, int parenttype, int childtype, unsigned minChildren, string &chkbuf) nodes of nodeType connected by 1 parent edge and minChildren edges.
  unsigned | CheckCountEdgesFrom (int nodeType, int edgeType, unsigned min, unsigned max, bool zeroAllowed, bool index, string &chkbuf) nodes of nodeType should have min/max departing edges of edgeType.
  unsigned | CheckReachability (int rootType, int nodeType, bool index, string &chkbuf) nodes of nodeType are reachable from >= 1 nodes of rootType.

### Protected Methods

  Graph* | GetGraph () const
  Diagram* | GetDiagram () const
  unsigned | CheckCount (unsigned min, unsigned max, int type, string &chkbuf, bool node)
  unsigned | CheckIllegalNames (int type, const string *name, string &chkbuf, bool node)

## Documentation

> implements generic checks for soft constraints on diagrams.

`DiagramChecks(Diagram *d, Graph *g)`

`unsigned CheckNodeCount(unsigned count, int nodeType, string &chkbuf)`
  diagram should have count nodes of nodeType.

`unsigned CheckNodeCount(unsigned min, unsigned max, int nodeType, string &chkbuf)`
  diagram should have min <= count <= max nodes of nodeType.

`unsigned CheckEdgeCount(unsigned count, int edgeType, string &chkbuf)`
  diagram should have count edges of edgeType

`unsigned CheckEdgeCount(unsigned min, unsigned max, int edgeType, string &chkbuf)`
  diagram should have min <= count <= max edges of edgeType.

`unsigned CheckDoubleIndexes(string &chkbuf)`
  check that nodes unique indexes.

`unsigned CheckNamelessNodes(int nodeType, string &chkbuf)`
  diagram should have no nameless nodes of nodeType

`unsigned CheckNamelessEdges(int edgeType, string &chkbuf)`
  diagram should have no nameless edges of edgeType

`unsigned CheckIllegalNodeNames(int nodeType, const string *name, string &chkbuf)`
  diagram should have no nodes of nodeType named 'name'.

`unsigned CheckIllegalEdgeNames(int edgeType, const string *name, string &chkbuf)`
  diagram should have no edges of edgeType named 'name'.

`unsigned CheckNamelessEdges( int edgeType, int type1, int type2, string &chkbuf)`
  diagram should have no nameless edges of edgeType between types.

`unsigned CheckDoubleNamelessEdges(int edgeType, int type1, int type2, string &chkbuf)`
  diagram shouldn't have double nameless edges between these types.

`unsigned CheckDoubleNodes(int nodeType, string &chkbuf)`
  diagram should not have multiple nodes of nodeType with same name.

`unsigned CheckConnected(int nodeType, bool index, string &chkbuf)`
  nodeType nodes should be connected (index: name or index in msg)

`unsigned CheckConnected(int nodeType, int toNode, int min, int max, bool index, string &chkbuf)`
  nodeType nodes should be connected (index: name or index in msg)

`unsigned CheckJunctionCoherence(int nodeType, int parenttype, int childtype, unsigned minChildren, string &chkbuf)`
  nodes of nodeType connected by 1 parent edge and minChildren edges.

`unsigned CheckCountEdgesFrom(int nodeType, int edgeType, unsigned min, unsigned max, bool zeroAllowed, bool index, string &chkbuf)`
  nodes of nodeType should have min/max departing edges of edgeType.

`unsigned CheckReachability(int rootType, int nodeType, bool index, string &chkbuf)`
  nodes of nodeType are reachable from >= 1 nodes of rootType.

`Graph* GetGraph() const`

`Diagram* GetDiagram() const`

`unsigned CheckCount(unsigned min, unsigned max, int type, string &chkbuf, bool node)`

`unsigned CheckIllegalNames(int type, const string *name, string &chkbuf, bool node)`

Direct child classes:
  STChecks
  SNChecks
  PSChecks
  ERChecks
  DFChecks
  ATChecks

alphabetic index hierarchy of classes

this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de