Skip to content

Commit

Permalink
https://jira.catena-x.net/browse/KA-197 - Bug in JWT token time inter…
Browse files Browse the repository at this point in the history
…pretation. Introduce Skill-Service Call facility. Get filtered catalog request to run through.
  • Loading branch information
drcgjung committed May 15, 2023
1 parent c2aab8c commit e2140cc
Showing 1 changed file with 56 additions and 0 deletions.
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;
}
}

0 comments on commit e2140cc

Please sign in to comment.