forked from hsperker/product-knowledge
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
https://jira.catena-x.net/browse/KA-197 - Bug in JWT token time inter…
…pretation. Introduce Skill-Service Call facility. Get filtered catalog request to run through.
- Loading branch information
Showing
1 changed file
with
56 additions
and
0 deletions.
There are no files selected for viewing
56 changes: 56 additions & 0 deletions
56
...otocol/src/main/java/io/catenax/knowledge/dataspace/edc/sparql/SkillVariableDetector.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
// | ||
// EDC Data Plane Agent Extension | ||
// See copyright notice in the top folder | ||
// See authors file in the top folder | ||
// See license file in the top folder | ||
// | ||
package io.catenax.knowledge.dataspace.edc.sparql; | ||
|
||
import org.apache.jena.graph.Node; | ||
import org.apache.jena.sparql.algebra.Op; | ||
import org.apache.jena.sparql.algebra.TransformSingle; | ||
import org.apache.jena.sparql.algebra.op.OpExtend; | ||
import org.apache.jena.sparql.core.Var; | ||
import org.apache.jena.sparql.expr.ExprVar; | ||
import org.apache.jena.sparql.expr.nodevalue.NodeValueNode; | ||
|
||
import java.util.HashMap; | ||
import java.util.Map; | ||
import java.util.Set; | ||
|
||
/** | ||
* a pseudo transform which visits every graph node | ||
* to list all variables. helps us to | ||
* only serialize the needed portion from | ||
* consumer to producer | ||
*/ | ||
public class SkillVariableDetector extends TransformSingle { | ||
|
||
HashMap<String,Node> variables=new HashMap<>(); | ||
Set<String> allowed; | ||
|
||
public SkillVariableDetector(Set<String> allowed) { | ||
this.allowed=allowed; | ||
} | ||
|
||
@Override | ||
public Op transform(OpExtend opExtend, Op subOp) { | ||
opExtend.getVarExprList().forEachExpr( (assignment,expr) -> { | ||
String varName= assignment.getVarName(); | ||
if(allowed.contains(varName) && !variables.containsKey(varName)) { | ||
if(expr.isVariable()) { | ||
Var var = (Var) ((ExprVar)expr).getAsNode(); | ||
variables.put(varName, var); | ||
} else if(expr.isConstant()) { | ||
Node node = ((NodeValueNode) expr).getNode(); | ||
variables.put(varName, node); | ||
} | ||
} | ||
}); | ||
return opExtend; | ||
} | ||
|
||
public Map<String,Node> getVariables() { | ||
return variables; | ||
} | ||
} |