package com.github.czyzby.autumn.mvc.component.ui.dto.provider; import com.badlogic.gdx.utils.ObjectSet; import com.github.czyzby.kiwi.util.gdx.collection.GdxSets; import com.github.czyzby.lml.parser.LmlParser; /** Base implementation for {@link com.github.czyzby.autumn.mvc.component.ui.dto.provider.ViewActionProvider} that * manages handled view types. * * @author MJ */ public abstract class AbstractViewActionProvider implements ViewActionProvider { private final ObjectSet<String> viewIds; public AbstractViewActionProvider(final String[] viewIds) { this.viewIds = GdxSets.newSet(viewIds); } @Override public void register(final LmlParser parser, final String viewId) { if (viewIds.contains(viewId)) { register(parser); } } /** The view ID is valid. * * @param parser should have the action registered. */ protected abstract void register(LmlParser parser); @Override public void unregister(final LmlParser parser, final String viewId) { if (viewIds.contains(viewId)) { unregister(parser); } } /** The view ID is valid. * * @param parser should have the action removed. */ protected abstract void unregister(LmlParser parser); }