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);
|
this.setMap.get(nodeParams.set)?.add(uuid);
|
||||||
switch (nodeParams.valueType) {
|
switch (nodeParams.valueType) {
|
||||||
case "expression": {
|
case "expression": {
|
||||||
this.expressionMap.set(nodeParams.id, uuid);
|
const {id} = nodeParams as ExpressionNode;
|
||||||
|
this.expressionMap.set(id, uuid);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +63,7 @@ export class DataBase {
|
||||||
return Array.from(uuids).map(u => this.get(u));
|
return Array.from(uuids).map(u => this.get(u));
|
||||||
}
|
}
|
||||||
|
|
||||||
getExpression(id: string): ExpressionResult {
|
getExpression(id: ExpressionNode["id"]): ExpressionResult {
|
||||||
const uuid = this.expressionMap.get(id);
|
const uuid = this.expressionMap.get(id);
|
||||||
if (uuid == null) {
|
if (uuid == null) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -75,7 +76,7 @@ export class DataBase {
|
||||||
if (cache != null) {
|
if (cache != null) {
|
||||||
return cache;
|
return cache;
|
||||||
}
|
}
|
||||||
const result = this.calculateExpression(node);
|
const result = this.calculateExpression(node as ExpressionNode);
|
||||||
this.expressionCacheMap.set(node.uuid, result);
|
this.expressionCacheMap.set(node.uuid, result);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -88,7 +89,10 @@ export class DataBase {
|
||||||
return set.length;
|
return set.length;
|
||||||
}
|
}
|
||||||
if (node.value.hasOwnProperty("expression")) {
|
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);
|
const expressionValue = this.getExpression(exprNode.id);
|
||||||
if (expressionValue instanceof Array) {
|
if (expressionValue instanceof Array) {
|
||||||
return expressionValue.length;
|
return expressionValue.length;
|
||||||
|
@ -112,7 +116,10 @@ export class DataBase {
|
||||||
}) as ExpressionResult;
|
}) as ExpressionResult;
|
||||||
}
|
}
|
||||||
if (node.value.hasOwnProperty("expression")) {
|
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);
|
const expressionValue = this.getExpression(exprNode.id);
|
||||||
if (expressionValue instanceof Array) {
|
if (expressionValue instanceof Array) {
|
||||||
return expressionValue.length;
|
return expressionValue.length;
|
||||||
|
|
Loading…
Reference in New Issue