package org.simantics.selectionview; import java.util.Collection; import java.util.Collections; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.variable.Variable; abstract public class AbstractTypedVariableTabContribution extends AbstractTypedTabContribution { public AbstractTypedVariableTabContribution(ReadGraph graph, Resource configuration) throws DatabaseException { super(graph, configuration); } @Override public boolean accept(ReadGraph graph, Object input, Collection types) throws DatabaseException { if (!(input instanceof Variable)) return false; Variable variable = (Variable) input; Resource resource = variable.getPossibleRepresents(graph); if (resource == null) return false; Collection ts = graph.getTypes(resource); return !Collections.disjoint(types, ts); } }