123
parent
f6cec3232d
commit
8acffcb4a9
|
@ -0,0 +1,5 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/refdb.iml" filepath="$PROJECT_DIR$/.idea/refdb.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
|
||||
## Node
|
||||
Узел, имеет атрибуты id, value, valueType
|
||||
|
||||
## Edge
|
||||
Связь двух узлов, имеет атрибуты id, in_id, out_id
|
||||
|
||||
## Expression
|
||||
Выражение
|
|
@ -29,7 +29,8 @@ export class DataBase {
|
|||
this.setMap.get(nodeParams.set)?.add(uuid);
|
||||
switch (nodeParams.valueType) {
|
||||
case "expression": {
|
||||
this.expressionMap.set(nodeParams.id, uuid);
|
||||
const {id} = nodeParams as ExpressionNode;
|
||||
this.expressionMap.set(id, uuid);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -62,7 +63,7 @@ export class DataBase {
|
|||
return Array.from(uuids).map(u => this.get(u));
|
||||
}
|
||||
|
||||
getExpression(id: string): ExpressionResult {
|
||||
getExpression(id: ExpressionNode["id"]): ExpressionResult {
|
||||
const uuid = this.expressionMap.get(id);
|
||||
if (uuid == null) {
|
||||
return null;
|
||||
|
@ -75,7 +76,7 @@ export class DataBase {
|
|||
if (cache != null) {
|
||||
return cache;
|
||||
}
|
||||
const result = this.calculateExpression(node);
|
||||
const result = this.calculateExpression(node as ExpressionNode);
|
||||
this.expressionCacheMap.set(node.uuid, result);
|
||||
return result;
|
||||
}
|
||||
|
@ -88,7 +89,10 @@ export class DataBase {
|
|||
return set.length;
|
||||
}
|
||||
if (node.value.hasOwnProperty("expression")) {
|
||||
const exprNode: ExpressionNode = this.nodeMap.get((node.value as CountWithExpression).expression);
|
||||
const exprNode: ExpressionNode | undefined = this.nodeMap.get((node.value as CountWithExpression).expression) as ExpressionNode;
|
||||
if (exprNode == null) {
|
||||
return null;
|
||||
}
|
||||
const expressionValue = this.getExpression(exprNode.id);
|
||||
if (expressionValue instanceof Array) {
|
||||
return expressionValue.length;
|
||||
|
@ -112,7 +116,10 @@ export class DataBase {
|
|||
}) as ExpressionResult;
|
||||
}
|
||||
if (node.value.hasOwnProperty("expression")) {
|
||||
const exprNode: ExpressionNode = this.nodeMap.get((node.value as FilterWithExpression).expression);
|
||||
const exprNode: ExpressionNode | undefined = this.nodeMap.get((node.value as FilterWithExpression).expression) as ExpressionNode;
|
||||
if (!exprNode) {
|
||||
return null;
|
||||
}
|
||||
const expressionValue = this.getExpression(exprNode.id);
|
||||
if (expressionValue instanceof Array) {
|
||||
return expressionValue.length;
|
||||
|
|
Loading…
Reference in New Issue