diff --git a/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/KGReasonerLocalRunner.java b/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/KGReasonerLocalRunner.java index 8847d212..9517dc09 100644 --- a/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/KGReasonerLocalRunner.java +++ b/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/KGReasonerLocalRunner.java @@ -176,26 +176,28 @@ public class KGReasonerLocalRunner { return graphState; } - String graphLoadClass = task.getGraphLoadClass(); - MemGraphState memGraphState = new MemGraphState(); - AbstractLocalGraphLoader graphLoader; - if (StringUtils.isEmpty(task.getGraphStateInitString())) { + String graphStateClass = task.getGraphStateClassName(); + if (StringUtils.isNotEmpty(graphStateClass)) { try { - graphLoader = - (AbstractLocalGraphLoader) Class.forName(graphLoadClass).getConstructor().newInstance(); - } catch (Exception e) { - throw new RuntimeException("can not create graph loader from name " + graphLoadClass, e); - } - } else { - try { - graphLoader = - (AbstractLocalGraphLoader) - Class.forName(graphLoadClass) + graphState = + (GraphState) + Class.forName(graphStateClass) .getConstructor(String.class) .newInstance(task.getGraphStateInitString()); } catch (Exception e) { - throw new RuntimeException("can not create graph loader from name " + graphLoadClass, e); + throw new RuntimeException("can not create graph state from name " + graphStateClass, e); } + return graphState; + } + + String graphLoadClass = task.getGraphLoadClass(); + MemGraphState memGraphState = new MemGraphState(); + AbstractLocalGraphLoader graphLoader; + try { + graphLoader = + (AbstractLocalGraphLoader) Class.forName(graphLoadClass).getConstructor().newInstance(); + } catch (Exception e) { + throw new RuntimeException("can not create graph loader from name " + graphLoadClass, e); } graphLoader.setGraphState(memGraphState); graphLoader.load(); diff --git a/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/LocalRunnerMain.java b/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/LocalRunnerMain.java index dbf32c8b..e49e68f0 100644 --- a/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/LocalRunnerMain.java +++ b/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/LocalRunnerMain.java @@ -217,7 +217,7 @@ public class LocalRunnerMain { task.setDsl(dsl); task.setOutputFile(outputFile); task.setConnInfo(new KgSchemaConnectionInfo(schemaUri, schemaToken)); - task.setGraphLoadClass(graphStateClass); + task.setGraphStateClassName(graphStateClass); task.setGraphStateInitString(graphStateUrl); task.setStartIdList(new ArrayList<>()); task.addStartId(startIdList); diff --git a/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/model/LocalReasonerTask.java b/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/model/LocalReasonerTask.java index bb9c9d0f..ffc71208 100644 --- a/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/model/LocalReasonerTask.java +++ b/reasoner/runner/local-runner/src/main/java/com/antgroup/openspg/reasoner/runner/local/model/LocalReasonerTask.java @@ -51,12 +51,16 @@ public class LocalReasonerTask implements Serializable { private KgSchemaConnectionInfo connInfo = null; private String schemaString = null; - /** Choose between graphLoadClass or graphState */ + /** Choose between graphLoadClass and graphState, or specify a class name */ private String graphLoadClass = null; - private String graphStateInitString = null; private GraphState graphState = null; + /** User specified the name of graphstate */ + private String graphStateClassName = null; + + private String graphStateInitString = null; + /** start id from input */ private List> startIdList;