{ "types": { "__p$*": [ { "name": "__pLabel", "type": "string", "default": "" }, { "name": "__pPivotIn", "type": "string", "default": "" }, { "name": "__pPivotOut", "type": "string", "default": "" }, { "name": "__pMatchSubtypes", "type": "boolean", "default": false } ], "__pGenericLink": [ { "name": "__pLabel", "type": "string", "default": "" }, { "name": "__pPivotIn", "type": "string", "default": "" }, { "name": "__pPivotOut", "type": "string", "default": "" }, { "name": "__pMatchSubtypes", "type": "boolean", "default": false } ] }, "constraints": [], "actions": [ { "name": "distinctPLabels", "event": "post-create", "code": "if( getAttr(\"__pLabel\") == \"\" )\n{\n\tvar pLabels = getAllNodes().\n\t\t\t\t\t\t\tfilter( function(n) {return hasAttr(\"__pLabel\",n);} ).\n\t\t\t\t\t\t\t\tmap( function(n) {return getAttr(\"__pLabel\",n);} ),\n\t\t i\t\t\t= \"0\";\n\n\twhile( _utils.contains(pLabels,i) )\n\t\ti = String(parseInt(i)+1);\n\tsetAttr(\"__pLabel\",i);\n}", "targetType": "*" } ], "cardinalities": { "__p$*": [ { "dir": "out", "type": "__pGenericLink", "min": 0, "max": "Infinity" }, { "dir": "in", "type": "__pGenericLink", "min": 0, "max": "Infinity" } ], "__pGenericLink": [ { "dir": "in", "type": "__p$*", "min": 0, "max": "1" }, { "dir": "out", "type": "__p$*", "min": 0, "max": "1" } ] }, "legalConnections": { "__p$*": { "__p$*": [ "__pGenericLink" ] } }, "connectorTypes": { "__pGenericLink": "visual" }, "types2parentTypes": { "__p$*": [], "__pGenericLink": [] } }