我有一个程序,它获取记录集合和一系列json对象,这些对象表示在java中按顺序对这些数据执行的操作或“步骤”。我想在步骤中添加一个“条件”字段,如果满足所述条件,后端可以使用该字段跳过步骤。
以下是json步骤之一的示例:
//previous steps...
,{
"closureType": "FILTER",
"configParams": {
"usingDataset": "DATASET1",
"condition": {
"operation": "OR",
"conditions": [
{
"field": "eve",
"value": 0,
"operation": "EQ"
},
{
"field": "eve",
"value": 0,
"operation": "LT"
}
]
},
"resultingDataset": "DATASET2"
}
},
//subsequent steps
此步骤告诉后端从dataset1中删除所有与筛选条件不匹配的记录,并存储dataset2中剩余的内容,然后通过后续步骤对这些记录执行操作。
但是,我想添加一个条件,该条件应该在步骤的其余部分之前执行,以确定过滤器是否实际发生。
{
"closureType": "FILTER",
"condition": "[Java If...Then code]"
"configParams": {
"usingDataset": "DATASET1",
"condition": {
"operation": "OR",
"conditions": [
{
"field": "eve",
"value": 0,
"operation": "EQ"
},
{
"field": "eve",
"value": 0,
"operation": "LT"
}
]
},
"resultingDataset": "DATASET2"
}
},
作为一个更具体的例子:
{
"closureType": "FILTER",
"condition": "if(transformContext.datasets.get(DATASET1).hasField(fieldname)){break;}"
"configParams": {
"usingDataset": "DATASET1",
"condition": {
"operation": "OR",
"conditions": [
{
"field": "eve",
"value": 0,
"operation": "EQ"
},
{
"field": "eve",
"value": 0,
"operation": "LT"
}
]
},
"resultingDataset": "DATASET2"
}
},
如果dataset1中的datarecords有一个名为“fieldname”的字段,则会阻止该步骤运行。
然而,据我所知,这在java中是不可能的,因为代码必须在运行之前编译。我看到有人提到使用groovy,但我对它完全不熟悉,所以不确定从哪里开始。有没有办法做到这一点或其他建议?
暂无答案!
目前还没有任何答案,快来回答吧!