protected void checkUnboundInterfaces( final ComponentContainer container, final Map<Object, Object> context) throws ADLException { final Binding[] bindings = (container instanceof BindingContainer) ? ((BindingContainer) container).getBindings() : new Binding[0]; // first check internal client interfaces if (container instanceof InternalInterfaceContainer) { for (final Interface itf : ((InternalInterfaceContainer) container).getInternalInterfaces()) { if (isClient(itf) && isMandatory(itf)) { if (findBinding(bindings, THIS_COMPONENT, itf) == null) errorManagerItf.logError( BindingErrors.UNBOUND_COMPOSITE_SERVER_INTERFACE, container, itf.getName(), ((Definition) container).getName()); } } } // then check client interfaces of sub components for (final Component subComponent : container.getComponents()) { final Definition subCompDef = getResolvedComponentDefinition(subComponent, recursiveLoaderItf, context); assert subCompDef != null; if (ASTHelper.isUnresolvedDefinitionNode(subCompDef)) continue; if (subCompDef instanceof InterfaceContainer) { for (final Interface itf : ((InterfaceContainer) subCompDef).getInterfaces()) { if (isClient(itf) && isMandatory(itf)) { if (findBinding(bindings, subComponent.getName(), itf) == null) errorManagerItf.logError( BindingErrors.UNBOUND_CLIENT_INTERFACE, subComponent, itf.getName(), subComponent.getName()); } } } } }