package sharpen.xobotos.api.interop.glue; public abstract class AbstractDefinition extends AbstractMember { protected AbstractDefinition(Visibility visibility) { super(visibility); } private AbstractDeclaration<?> _declaration; public final boolean hasDeclaration() { return _declaration != null; } public final AbstractDeclaration<?> getDeclaration() { if (_declaration == null) _declaration = createDeclaration(); return _declaration; } protected abstract AbstractDeclaration<?> createDeclaration(); }