2017-02-20 19 views
0

Утро все,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. У кого-нибудь есть идея?

Thx для всех.

ответ

0

Вот решение, которое я нашел!

@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() функция используется для формирования итератора в коллекции

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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^