@Override public String toString() { return m_dependencyDeclaration.getName(); }
private boolean dependencyMustBeAddedToGraph(ComponentDependencyDeclaration cdd) { if(m_dependencyState == DependencyState.ALL) { return true; } else if(m_dependencyState == DependencyState.ALL_UNAVAILABLE) { return (cdd.getState() == ComponentDependencyDeclaration.STATE_UNAVAILABLE_REQUIRED) || (cdd.getState() == ComponentDependencyDeclaration.STATE_UNAVAILABLE_OPTIONAL); } else if(m_dependencyState == DependencyState.REQUIRED_UNAVAILABLE) { return cdd.getState() == ComponentDependencyDeclaration.STATE_UNAVAILABLE_REQUIRED; } return false; }
if( (type != null) && (!dependencyNode.getDependencyDeclaration().getType().equals(type)) ) { continue; Bundle bundle = componentNode.getComponentDeclaration().getBundleContext().getBundle(); MissingDependency missingDependency = new MissingDependency( node.getDependencyDeclaration().getName(), node.getDependencyDeclaration().getType(), bundle.getSymbolicName()); result.add(missingDependency);
private List<ComponentNode> getProviderComponents(DependencyNode dependencyNode) { List<ComponentNode> result = new ArrayList<>(); ComponentDependencyDeclaration cdd = dependencyNode.getDependencyDeclaration(); if(!SERVICE.equals(cdd.getType())) { return result; } for(DependencyGraphNode n : m_componentToNode.values()) { ComponentNode componentNode = (ComponentNode)n; if(componentProvidesDependency(componentNode, dependencyNode)) { result.add(componentNode); } } return result; }
private boolean componentProvidesDependency(ComponentNode componentNode, DependencyNode dependencyNode) { ComponentDeclaration cd = componentNode.getComponentDeclaration(); String dependencyName = dependencyNode.getDependencyDeclaration().getName(); String simpleName = getSimpleName(dependencyName); Properties properties = parseProperties(dependencyName); String componentName = cd.getName(); String simpleComponentName = componentName; int cuttOff = simpleComponentName.indexOf("("); if (cuttOff != -1) { simpleComponentName = simpleComponentName.substring(0, cuttOff).trim(); } for (String serviceName : simpleComponentName.split(",")) { if (simpleName.equals(serviceName.trim()) && doPropertiesMatch(properties, parseProperties(componentName))) { return true; } } return false; }
public boolean isUnavailableRequired() { return m_dependencyDeclaration.getState() == ComponentDependencyDeclaration.STATE_UNAVAILABLE_REQUIRED; }
public boolean isUnavailableOptional() { return m_dependencyDeclaration.getState() == ComponentDependencyDeclaration.STATE_UNAVAILABLE_OPTIONAL; }