expexp
Version:
The express model io and express model and data representation.
422 lines (421 loc) • 11.8 kB
JSON
{
"t": "entity",
"id": "NttPerson",
"super": {"t":"not_set"},
"abs": false,
"attrs": [
{
"t":"attr",
"ids":[{"t":"attr_id", "id":"firstName"}],
"opt":true,
"type":{"t":"type_ref", "id":"TpLabel"}
},
{
"t":"attr",
"ids":[{"t":"attr_id", "id":"lastName"}],
"opt":true,
"type":{"t":"type_ref", "id":"TpLabel"}
},
{
"t":"attr",
"ids":[{"t":"attr_id", "id":"middleNames"}],
"opt":true,
"type":{
"t":"list",
"unique":false,
"bounds":{"t":"bounds","from":[[{ "t":"factor", "arg0":{"t":"integer", "value":1}, "quals0":[], "arg1":null, "quals1":null }]],"to":[]},
"spec":{"t":"type_ref", "id":"TpLabel"}
}
},
{
"t":"attr",
"ids":[{"t":"attr_id", "id":"birthDate"}],
"opt":true,
"type":{"t":"type_ref", "id":"TpDate"}
},
{
"t":"attr",
"ids":[{"t":"attr_id", "id":"phone"}],
"opt":true,
"type":{"t":"type_ref", "id":"TpLabel"}
},
{
"t":"attr",
"ids":[{"t":"attr_id", "id":"phoneType"}],
"opt":true,
"type":{"t":"type_ref", "id":"TpPhoneType"}
},
{
"t":"attr",
"ids":[{"t":"attr_id", "id":"phoneTypeOther"}],
"opt":true,
"type":{"t":"type_ref", "id":"TpLabel"}
}
],
"derives": [],
"uniques": [],
"inverses": [
{
"t":"inverse",
"id": {"t":"attr_id", "id":"creates"},
"aggrType": "set",
"aggrBnds":{"t":"bounds","from":[[{ "t":"factor", "arg0":{"t":"integer", "value":0}, "quals0":[], "arg1":null, "quals1":null }]],"to":[]},
"nttRef":{"t":"entity_ref", "id":"NttRelCreates"},
"invRef":{"t":"attr_ref", "id":"creator"}
},
{
"t":"inverse",
"id": {"t":"attr_id", "id":"invites"},
"aggrType": "set",
"aggrBnds":{"t":"bounds","from":[[{ "t":"factor", "arg0":{"t":"integer", "value":0}, "quals0":[], "arg1":null, "quals1":null }]],"to":[]},
"nttRef":{"t":"entity_ref", "id":"NttRelInvites"},
"invRef":{"t":"attr_ref", "id":"host"}
},
{
"t":"inverse",
"id": {"t":"attr_id", "id":"isInvited"},
"aggrType": "set",
"aggrBnds":{"t":"bounds","from":[[{ "t":"factor", "arg0":{"t":"integer", "value":0}, "quals0":[], "arg1":null, "quals1":null }]],"to":[]},
"nttRef":{"t":"entity_ref", "id":"NttRelInvites"},
"invRef":{"t":"attr_ref", "id":"guests"}
},
{
"t":"inverse",
"id":{"id":"teams","t":"attr_id"},
"aggrType":"bag",
"aggrBnds":{"from":[[{"arg0":{"t":"integer","value":0},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"t":"bounds","to":[]},
"nttRef":{"id":"NttTeam","t":"entity_ref"},
"invRef":{"id":"members","t":"attr_ref"}
}
],
"wheres":[
{
"t":"where",
"id":"isNamed",
"expr":{
"arg0":[
[{
"t":"factor",
"arg0":{
"t":"parenthesis",
"expr":{
"t":"expr",
"arg0":[[
{
"arg0":{
"id":"exists",
"t":"bifct",
"values":[{
"arg0":[[{
"t":"factor",
"arg0":{"id":"firstName","t":"var_ref"},
"quals0":[],
"arg1":null,
"quals1":null
}]],
"arg1":null,
"op":null,
"t":"expr"
}]
},
"arg1":null,
"quals0":[],
"quals1":null,
"t":"factor"
},
{"id":"and","t":"multlikeop"},
{
"t":"factor",
"arg0":{
"t":"parenthesis",
"expr":{
"t":"expr",
"arg0":[[
{
"t":"factor",
"arg0":{"t":"integer","value":0},
"quals0":[],
"arg1":null,
"quals1":null
}
]],
"op":{"id":"lt","t":"relopext"},
"arg1":[[{
"t":"factor",
"arg0":{
"id":"length",
"t":"bifct",
"values":[{
"t":"expr",
"arg0":[[
{
"t":"factor",
"arg0":{"id":"firstName","t":"var_ref"},
"quals0":[],
"arg1":null,
"quals1":null
}
]],
"op":null,
"arg1":null
}]
},
"arg1":null,
"quals0":[],
"quals1":null
}]]
}
},
"arg1":null,
"quals0":[],
"quals1":null
}
]],
"op":null,
"arg1":null
}
},
"quals0":[],
"arg1":null,
"quals1":null
}],
{"id":"or","t":"addlikeop"},
[{
"t":"factor",
"arg0":{
"t":"parenthesis",
"expr":{
"t":"expr",
"arg0":[[
{
"arg0":{
"id":"exists",
"t":"bifct",
"values":[{
"arg0":[[{
"t":"factor",
"arg0":{"id":"lastName","t":"var_ref"},
"quals0":[],
"arg1":null,
"quals1":null
}]],
"arg1":null,
"op":null,
"t":"expr"
}]
},
"arg1":null,
"quals0":[],
"quals1":null,
"t":"factor"
},
{"id":"and","t":"multlikeop"},
{
"t":"factor",
"arg0":{
"t":"parenthesis",
"expr":{
"t":"expr",
"arg0":[[
{
"t":"factor",
"arg0":{"t":"integer","value":0},
"quals0":[],
"arg1":null,
"quals1":null
}
]],
"op":{"id":"lt","t":"relopext"},
"arg1":[[{
"t":"factor",
"arg0":{
"id":"length",
"t":"bifct",
"values":[{
"t":"expr",
"arg0":[[
{
"t":"factor",
"arg0":{"id":"lastName","t":"var_ref"},
"quals0":[],
"arg1":null,
"quals1":null
}
]],
"op":null,
"arg1":null
}]
},
"arg1":null,
"quals0":[],
"quals1":null
}]]
}
},
"arg1":null,
"quals0":[],
"quals1":null
}
]],
"op":null,
"arg1":null
}
},
"quals0":[],
"arg1":null,
"quals1":null
}],
{"id":"or","t":"addlikeop"},
[{
"t":"factor",
"arg0":{
"t":"parenthesis",
"expr":{
"t":"expr",
"arg0":[[
{
"arg0":{
"id":"exists",
"t":"bifct",
"values":[{
"arg0":[[{
"t":"factor",
"arg0":{"id":"middleNames","t":"var_ref"},
"quals0":[],
"arg1":null,
"quals1":null
}]],
"arg1":null,
"op":null,
"t":"expr"
}]
},
"arg1":null,
"quals0":[],
"quals1":null,
"t":"factor"
},
{"id":"and","t":"multlikeop"},
{
"t":"factor",
"arg0":{
"t":"parenthesis",
"expr":{
"t":"expr",
"arg0":[[
{
"t":"factor",
"arg0":{"t":"integer","value":0},
"quals0":[],
"arg1":null,
"quals1":null
}
]],
"op":{"id":"lt","t":"relopext"},
"arg1":[[{
"t":"factor",
"arg0":{
"id":"length",
"t":"bifct",
"values":[{
"t":"expr",
"arg0":[[
{
"t":"factor",
"arg0":{"id":"middleNames","t":"var_ref"},
"quals0":[
{
"t":"idx_qual",
"idxStart":[[{
"arg0":{"t":"integer","value":1},
"arg1":null,
"quals0":[],
"quals1":null,
"t":"factor"
}]],
"idxEnd":[]
}
],
"arg1":null,
"quals1":null
}
]],
"op":null,
"arg1":null
}]
},
"arg1":null,
"quals0":[],
"quals1":null
}]]
}
},
"arg1":null,
"quals0":[],
"quals1":null
}
]],
"op":null,
"arg1":null
}
},
"quals0":[],
"arg1":null,
"quals1":null
}]
],
"arg1":null,
"op":null,
"t":"expr"
}
},
{
"expr":{"arg0":[[{"arg0":{"expr":{"arg0":[[{"arg0":{"id":"exists","t":"bifct","values":[{"arg0":[[{"arg0":{"id":"phone","t":"var_ref"},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"arg1":null,"op":null,"t":"expr"}]},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"arg1":[[{"arg0":{"id":"exists","t":"bifct","values":[{"arg0":[[{"arg0":{"id":"phoneType","t":"var_ref"},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"arg1":null,"op":null,"t":"expr"}]},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"op":{"id":"eq","t":"relopext"},"t":"expr"},"t":"parenthesis"},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"arg1":null,"op":null,"t":"expr"},
"id":"phoneTypeWhenPhoneSet",
"t":"where"
},
{
"expr":{
"t":"expr",
"arg0":[
[{
"t":"factor",
"arg0":{
"expr":{
"t":"expr",
"arg0":[[{
"t":"factor",
"arg0":{"id":"phoneType","t":"var_ref"},"arg1":null,"quals0":[],"quals1":null
}]],
"op":{"id":"ne","t":"relopext"},
"arg1":[[{
"t":"factor",
"arg0":{"id":"TpPhoneType","t":"type_ref"},
"quals0":[{"id":"OTHER","t":"enum_value"}],
"arg1":null,
"quals1":null
}]]
},
"t":"parenthesis"
},
"quals0":[],
"arg1":null,
"quals1":null
}],
{"id":"or","t":"addlikeop"},
[{
"t":"factor",
"arg0":{"expr":{"arg0":[[{"arg0":{"expr":{"arg0":[[{"arg0":{"id":"phoneType","t":"var_ref"},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"arg1":[[{"arg0":{"id":"TpPhoneType","t":"type_ref"},"arg1":null,"quals0":[{"id":"OTHER","t":"enum_value"}],"quals1":null,"t":"factor"}]],"op":{"id":"eq","t":"relopext"},"t":"expr"},"t":"parenthesis"},"arg1":null,"quals0":[],"quals1":null,"t":"factor"},{"id":"and","t":"multlikeop"},{"arg0":{"expr":{"arg0":[[{"arg0":{"id":"exists","t":"bifct","values":[{"arg0":[[{"arg0":{"id":"phoneTypeOther","t":"var_ref"},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"arg1":null,"op":null,"t":"expr"}]},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"arg1":null,"op":null,"t":"expr"},"t":"parenthesis"},"arg1":null,"quals0":[],"quals1":null,"t":"factor"}]],"arg1":null,"op":null,"t":"expr"},"t":"parenthesis"},
"quals0":[],
"arg1":null,
"quals1":null
}]
],
"op":null,
"arg1":null
},
"id":"phoneTypeOtherDescribed",
"t":"where"
}
]
}