package com.github.czyzby.lml.parser.impl.tag; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.ObjectMap; import com.github.czyzby.kiwi.util.common.Strings; import com.github.czyzby.lml.parser.tag.LmlTag; /** "Artificial" mock-up tag wrapping around an already constructed actor. * * @author MJ */ public class MockLmlTag implements LmlTag { private final LmlTag parent; private final Actor actor; public MockLmlTag(final Actor actor, final LmlTag parent) { this.actor = actor; this.parent = parent; } @Override public boolean isParent() { return false; } @Override public boolean isChild() { return true; } @Override public boolean isMacro() { return false; } @Override public boolean isAttachable() { return false; } @Override public void attachTo(final LmlTag tag) { throw new IllegalStateException("This is programatically created mock-up LML tag that cannot be attached."); } @Override public void handleDataBetweenTags(final CharSequence rawData) { throw new IllegalStateException("This is programatically created mock-up LML tag that cannot have children."); } @Override public Actor getActor() { return actor; } @Override public Object getManagedObject() { return actor; } @Override public LmlTag getParent() { return parent; } @Override public String getTagName() { return Strings.EMPTY_STRING; } @Override public Array<String> getAttributes() { return null; } @Override public ObjectMap<String, String> getNamedAttributes() { return null; } @Override public boolean hasAttribute(final String name) { return false; } @Override public String getAttribute(final String name) { return null; } @Override public void closeTag() { } @Override public void handleChild(final LmlTag childTag) { throw new IllegalStateException("This is programatically created mock-up LML tag that cannot have children."); } }