/* * SPDX-FileCopyrightText: 2023 The Refinery Authors * * SPDX-License-Identifier: EPL-2.0 */ package tools.refinery.store.query.viatra.internal.matcher; import org.eclipse.viatra.query.runtime.matchers.backend.IQueryResultProvider; import org.eclipse.viatra.query.runtime.matchers.backend.IUpdateable; import tools.refinery.store.query.dnf.Query; import tools.refinery.store.query.resultset.AbstractResultSet; import tools.refinery.store.query.viatra.internal.ViatraModelQueryAdapterImpl; public abstract class AbstractViatraMatcher extends AbstractResultSet implements IUpdateable { protected final IQueryResultProvider backend; protected AbstractViatraMatcher(ViatraModelQueryAdapterImpl adapter, Query query, RawPatternMatcher rawPatternMatcher) { super(adapter, query); backend = rawPatternMatcher.getBackend(); } @Override protected void startListeningForChanges() { backend.addUpdateListener(this, this, false); } @Override protected void stopListeningForChanges() { backend.removeUpdateListener(this); } }