0

Neo4j から Gephi に重みを送信できるように、Gephi の apoc プラグインを更新しようとしています。これは、プラグインのオリジナル バージョンです。簡単に組み替えできると思ったのは

private Map<String, Object> data(PropertyContainer pc, Map<String, Map<String, Object>> colors) {
    if (pc instanceof Node) {
        Node n = (Node) pc;
        String labels = Util.labelString(n);
        Map<String, Object> attributes = map("label", caption(n), "TYPE", labels);
        attributes.putAll(positions());
        attributes.putAll(color(labels,colors));
        return map(idStr(n), attributes);
    }
    if (pc instanceof Relationship) {
        Relationship r = (Relationship) pc;
        String type = r.getType().name();
        Map<String, Object> attributes = map("label", type, "TYPE", type);
        attributes.putAll(map("source", idStr(r.getStartNode()), "target", idStr(r.getEndNode()), "directed", true));
        attributes.putAll(color(type, colors));
        return map(String.valueOf(r.getId()), attributes);
    }
    return map();
}

このようなものに、関係の解析方法を変更し、重みを追加して返す

private Map<String, Object> data(PropertyContainer pc, Map<String, Map<String, Object>> colors) {
    if (pc instanceof Node) {
        Node n = (Node) pc;
        String labels = Util.labelString(n);
        Map<String, Object> attributes = map("label", caption(n), "TYPE", labels);
        attributes.putAll(positions());
        attributes.putAll(color(labels,colors));
        return map(idStr(n), attributes);
    }
    if (pc instanceof Relationship) {
        Relationship r = (Relationship) pc;
        String type = r.getType().name();
        String weight = r.getProperty("weight");
        Map<String, Object> attributes = map("label", type, "TYPE", type);
        attributes.putAll(map("source", idStr(r.getStartNode()), "target", idStr(r.getEndNode()), "directed", false,"weight",weight));
        attributes.putAll(color(type, colors));
        return map(String.valueOf(r.getId()), attributes);
    }
    return map();
}

ここで、私が Java 初心者であり、JAVA データ型と対話する方法がわからないという問題が発生します。プロパティコンテナでこのドキュメントを見つけました。そこでgetProperty(String key)メソッドを見つけて、上記のように使用しようとしましたが、次のエラーが発生しました

/Users/Hal/Job/neo4j-apoc-procedures/src/main/java/apoc/gephi/Gephi.java:81: エラー: 互換性のない型: オブジェクトを文字列に変換できません String weight = r.getProperty("weight" );

これは基本的な Java の問題だと思いますが、これをデバッグする方法がわかりません。私も試しString weight = r.getProperty(weight);ましたが、同じエラーが発生しました。助けていただければ幸いです

4

1 に答える 1