耶拿 - 排序元素

时间:2017-02-20 07:56:49

标签: java jena apache-jena

早上好,

我目前正在为我制作的本体开发一个查看器。我想根据它们的类型着色元素(OntPropery,ObjectProperty,Individuals,...)。 我的想法是实现这个:

public Paint transform(RDFNode i) {
    if(OntProperty) return Color.RED;
    if(ObjectProperty) return Color.BLUE;
    if(Individuals) return Color.GREEN;
    return Color.GRAY;
}

我使用JenaJung库。

问题是我找不到ifs的正确条件。有人有想法吗?

所有人都是。

1 个答案:

答案 0 :(得分:1)

这是我找到的解决方案!

@Override
    public Paint transform(RDFNode i) {

        OntModel model = (OntModel) i.getModel();
        Collection classes = JenaJungGraph.asCollection(model.listClasses());

        if(classes.stream().anyMatch(x -> x.toString() == i.asResource().toString())) return ontPropertyColor;

        return Color.GRAY;
    }

等等,对于其他元素。

希望能帮助别人!

asCollection()函数用于将Iterator形成Collection

static <T> Collection<T> asCollection(final ClosableIterator<? extends T> it) {
    Collection<T> toReturn = new HashSet<>();
    while (it.hasNext())
        if(true)
            toReturn.add((T) it.next());

    it.close();

    return toReturn;
}