/** * Transform module to zero or more ModuleMXBeanEntry instances. Each * instance must have a globally unique local name. * * @return Map of identity local names as keys, and ModuleMXBeanEntry * instances as values */ public static Map<String/* identity local name */, ModuleMXBeanEntry> create( Module currentModule, Map<QName, ServiceInterfaceEntry> qNamesToSIEs, SchemaContext schemaContext, TypeProviderWrapper typeProviderWrapper, String packageName) { ModuleMXBeanEntryBuilder builder = new ModuleMXBeanEntryBuilder().setModule(currentModule).setqNamesToSIEs(qNamesToSIEs) .setSchemaContext(schemaContext).setTypeProviderWrapper(typeProviderWrapper) .setPackageName(packageName); return builder.build(); }
private static void checkAttributeNamesUniqueness(final Map<String, QName> uniqueGeneratedClassesNames, final Map<String, ModuleMXBeanEntry> result) { for (Map.Entry<String, ModuleMXBeanEntry> entry : result.entrySet()) { checkUniqueRuntimeBeanAttributesName(entry.getValue(), uniqueGeneratedClassesNames); } }
configModulePrefix = getConfigModulePrefixFromImport(currentModule); } catch (IllegalArgumentException e) { Map<String, IdentitySchemaNode> moduleIdentities = getIdentityMap(); if (areAllChildrenChoiceCaseNodes(childNodes)) { for (ChoiceCaseNode childCase : castChildNodesToChoiceCases(childNodes)) { processChoiceCaseNode(result, uniqueGeneratedClassesNames, configModulePrefix, moduleIdentities, unaugmentedModuleIdentities, augmentation, childCase); cleanUpNulls(result); checkAttributeNamesUniqueness(uniqueGeneratedClassesNames, result); checkUnaugumentedIdentities(unaugmentedModuleIdentities);
Matcher matcher = getWhenConditionMatcher(configModulePrefix, xPath); if (matcher.matches() == false) { return; unaugmentedModuleIdentities.remove(moduleLocalNameFromXPath); checkState(moduleIdentity != null, "Cannot find identity %s matching augmentation %s", moduleLocalNameFromXPath, augmentation); Map<String, QName> providedServices = findProvidedServices(moduleIdentity, currentModule, qNamesToSIEs, schemaContext); HAS_CHILDREN_AND_QNAME dataNodeContainer = getDataNodeContainer(choiceCaseNode); yangToAttributes = fillConfiguration(dataNodeContainer, currentModule, typeProviderWrapper, qNamesToSIEs, schemaContext, packageName); checkUniqueAttributesWithGeneratedClass(uniqueGeneratedClassesNames, when.getQName(), yangToAttributes); } else if (EXPECTED_STATE_AUGMENTATION_SCHEMA_PATH.equals(augmentation.getTargetPath())) { LOG.debug("Parsing state of {}", moduleLocalNameFromXPath); try { runtimeBeans = fillRuntimeBeans(dataNodeContainer, currentModule, typeProviderWrapper, packageName, moduleLocalNameFromXPath, javaNamePrefix); } catch (NameConflictException e) { throw new NameConflictException(e.getConflictingName(), when.getQName(), when.getQName()); checkUniqueRuntimeBeansGeneratedClasses(uniqueGeneratedClassesNames, when, runtimeBeans); Set<RuntimeBeanEntry> runtimeBeanEntryValues = Sets.newHashSet(runtimeBeans); for (RuntimeBeanEntry entry : runtimeBeanEntryValues) { checkUniqueAttributesWithGeneratedClass(uniqueGeneratedClassesNames, when.getQName(), entry.getYangPropertiesToTypesMap());
private static void checkUniqueAttributesWithGeneratedClass(final Map<String, QName> uniqueGeneratedClassNames, final QName parentQName, final Map<String, AttributeIfc> yangToAttributes) { for (Map.Entry<String, AttributeIfc> attr : yangToAttributes.entrySet()) { if (attr.getValue() instanceof TOAttribute) { checkUniqueTOAttr(uniqueGeneratedClassNames, parentQName, (TOAttribute) attr.getValue()); } else if (attr.getValue() instanceof ListAttribute && ((ListAttribute) attr.getValue()).getInnerAttribute() instanceof TOAttribute) { checkUniqueTOAttr(uniqueGeneratedClassNames, parentQName, (TOAttribute) ((ListAttribute) attr.getValue()).getInnerAttribute()); } } }