Search in sources :

Example 1 with AbstractTemplate

use of sharpen.xobotos.api.templates.AbstractTemplate in project XobotOS by xamarin.

the class APIDefinition method compilationUnitDefinesBindings.

public boolean compilationUnitDefinesBindings(String unitName) {
    final ByRef<Boolean> result = new ByRef<Boolean>(false);
    TemplateVisitor visitor = new TemplateVisitor() {

        @Override
        public void accept(AbstractTemplate template) {
            if (template instanceof IBindingProvider) {
                IBindingProvider provider = (IBindingProvider) template;
                if (provider.getBinding() != null)
                    result.value = true;
            }
            if (template instanceof TypeTemplate) {
                TypeTemplate type = (TypeTemplate) template;
                if (type.getNativeType() != null)
                    result.value = true;
                else if (type.getNativeStruct() != null)
                    result.value = true;
            }
        }
    };
    for (final NamespaceTemplate def : getNamespaces()) {
        def.visit(visitor, unitName, VisitMode.All);
    }
    return result.value;
}
Also used : ByRef(sharpen.core.framework.ByRef) AbstractTemplate(sharpen.xobotos.api.templates.AbstractTemplate) IBindingProvider(sharpen.xobotos.api.bindings.IBindingProvider) TypeTemplate(sharpen.xobotos.api.templates.TypeTemplate) NamespaceTemplate(sharpen.xobotos.api.templates.NamespaceTemplate)

Aggregations

ByRef (sharpen.core.framework.ByRef)1 IBindingProvider (sharpen.xobotos.api.bindings.IBindingProvider)1 AbstractTemplate (sharpen.xobotos.api.templates.AbstractTemplate)1 NamespaceTemplate (sharpen.xobotos.api.templates.NamespaceTemplate)1 TypeTemplate (sharpen.xobotos.api.templates.TypeTemplate)1