private static void cleanUpNulls(final Map<String, ModuleMXBeanEntry> result) { for (Map.Entry<String, ModuleMXBeanEntry> entry : result.entrySet()) { ModuleMXBeanEntry module = entry.getValue(); if (module.getAttributes() == null) { module.setYangToAttributes(Collections .<String, AttributeIfc> emptyMap()); } else if (module.getRuntimeBeans() == null) { module.setRuntimeBeans(Collections .<RuntimeBeanEntry> emptyList()); } } }
public GeneratedObject toGeneratedObject(ModuleMXBeanEntry mbe, Optional<String> copyright) { FullyQualifiedName absFactoryFQN = new FullyQualifiedName(mbe.getPackageName(), mbe.getAbstractFactoryName()); FullyQualifiedName moduleFQN = new FullyQualifiedName(mbe.getPackageName(), mbe.getStubModuleName()); Optional<String> classJavaDoc = Optional.fromNullable(mbe.getNullableDescription()); AbstractFactoryTemplate abstractFactoryTemplate = TemplateFactory.abstractFactoryTemplateFromMbe(mbe); Optional<String> header = abstractFactoryTemplate.getHeaderString(); List<FullyQualifiedName> providedServices = new ArrayList<>(); for(String providedService: mbe.getProvidedServices().keySet()) { providedServices.add(FullyQualifiedName.fromString(providedService)); } return toGeneratedObject(absFactoryFQN, copyright, header, classJavaDoc, mbe.getYangModuleQName(), mbe.getGloballyUniqueName(), providedServices, moduleFQN, abstractFactoryTemplate.getFields()); }
public static StubFactoryTemplate stubFactoryTemplateFromMbe( final ModuleMXBeanEntry mbe) { return new StubFactoryTemplate(getHeaderFromEntry(mbe), mbe.getPackageName(), mbe.getStubFactoryName(), mbe.getFullyQualifiedName(mbe.getAbstractFactoryName()) ); }
public GeneratedObject toGeneratedObject(ModuleMXBeanEntry mbe, Optional<String> copyright, Optional<String> header) { FullyQualifiedName concreteFQN = new FullyQualifiedName(mbe.getPackageName(), mbe.getStubModuleName()); FullyQualifiedName abstractFQN = new FullyQualifiedName(mbe.getPackageName(), mbe.getAbstractModuleName()); Optional<String> classJavaDoc = Optional.fromNullable(mbe.getNullableDescription()); return toGeneratedObject(concreteFQN, abstractFQN, copyright, header, classJavaDoc); }
if (yangToAttributes != null && moduleMXBeanEntry.getAttributes() == null) { moduleMXBeanEntry.setYangToAttributes(yangToAttributes); } else if (runtimeBeans != null && moduleMXBeanEntry.getRuntimeBeans() == null) { moduleMXBeanEntry.setRuntimeBeans(runtimeBeans); checkState(Objects.equals(nullableDummyContainerName, moduleMXBeanEntry.getNullableDummyContainerName()), "Mismatch in module " + moduleMXBeanEntry.toString() + " - dummy container must be present/missing in" + " both state and configuration"); } else { ModuleMXBeanEntry moduleMXBeanEntry = new ModuleMXBeanEntry(initial, yangToAttributes, providedServices, runtimeBeans); moduleMXBeanEntry.setYangModuleName(currentModule.getName()); moduleMXBeanEntry.setYangModuleLocalname(moduleLocalNameFromXPath); moduleMXBeanEntry.setNullableDummyContainerName(nullableDummyContainerName); result.put(moduleLocalNameFromXPath, moduleMXBeanEntry);
public static AbstractModuleTemplate abstractModuleTemplateFromMbe( final ModuleMXBeanEntry mbe) { AbstractModuleAttributesProcessor attrProcessor = new AbstractModuleAttributesProcessor(mbe.getAttributes()); mbe.getFullyQualifiedName(mbe.getMXBeanInterfaceName())); for (String implementedService : mbe.getProvidedServices().keySet()) { implementedIfcs.add(implementedService); if (mbe.getRuntimeBeans() != null && !mbe.getRuntimeBeans().isEmpty()) { generateRuntime = true; RuntimeBeanEntry rootEntry = RuntimeRegistratorFtlTemplate .findRoot(mbe.getRuntimeBeans()); registratorFullyQualifiedName = rootEntry .getPackageName() List<String> extendedClasses = Collections.singletonList(AbstractModule.class.getCanonicalName() + "<" + mbe.getAbstractModuleName() + ">"); getHeaderFromEntry(mbe), mbe.getPackageName(), mbe.getAbstractModuleName(), extendedClasses, implementedIfcs, moduleFields, attrProcessor.getMethods(), generateRuntime, registratorFullyQualifiedName); if (mbe.getNullableDescription() != null) { abstractModuleTemplate.getAnnotations().add( Annotation.createDescriptionAnnotation(mbe .getNullableDescription()));
private static void checkUniqueRuntimeBeanAttributesName(final ModuleMXBeanEntry mxBeanEntry, final Map<String, QName> uniqueGeneratedClassesNames) { for (RuntimeBeanEntry runtimeBeanEntry : mxBeanEntry.getRuntimeBeans()) { for (String runtimeAttName : runtimeBeanEntry.getYangPropertiesToTypesMap().keySet()) { if (mxBeanEntry.getAttributes().keySet().contains(runtimeAttName)) { QName qName1 = uniqueGeneratedClassesNames.get(runtimeBeanEntry.getJavaNameOfRuntimeMXBean()); QName qName2 = uniqueGeneratedClassesNames.get(mxBeanEntry.getGloballyUniqueName()); throw new NameConflictException(runtimeAttName, qName1, qName2); } } } }
public static GeneralInterfaceTemplate mXBeanInterfaceTemplateFromMbe( final ModuleMXBeanEntry mbe) { MXBeanInterfaceAttributesProcessor attrProcessor = new MXBeanInterfaceAttributesProcessor(); attrProcessor.processAttributes(mbe.getAttributes()); GeneralInterfaceTemplate ifcTemplate = new GeneralInterfaceTemplate( getHeaderFromEntry(mbe), mbe.getPackageName(), mbe.getMXBeanInterfaceName(), Lists.<String> newArrayList(), attrProcessor.getMethods()); ifcTemplate.setJavadoc(mbe.getNullableDescription()); return ifcTemplate; }
String packageName = packageTranslator.getPackageName(module); .create(module, qNamesToSIEs, context, new TypeProviderWrapper(new TypeProviderImpl(context)), packageName); .getFullyQualifiedName(mbe.getStubFactoryName())); fullyQualifiedNamesOfFactories.append("\n");
public static AbstractFactoryTemplate abstractFactoryTemplateFromMbe( final ModuleMXBeanEntry mbe) { AbstractFactoryAttributesProcessor attrProcessor = new AbstractFactoryAttributesProcessor(); attrProcessor.processAttributes(mbe.getAttributes()); return new AbstractFactoryTemplate(getHeaderFromEntry(mbe), mbe.getPackageName(), mbe.getAbstractFactoryName(), attrProcessor.getFields() ); }
public static Map<String/* Namespace from yang file */, Map<String /* Name of module entry from yang file */, ModuleConfig>> transformMbeToModuleConfigs (final BeanReader configRegistryClient, Map<String/* Namespace from yang file */, Map<String /* Name of module entry from yang file */, ModuleMXBeanEntry>> mBeanEntries) { Map<String, Map<String, ModuleConfig>> namespaceToModuleNameToModuleConfig = Maps.newHashMap(); for (Map.Entry<String, Map<String, ModuleMXBeanEntry>> namespaceToModuleToMbe : mBeanEntries.entrySet()) { for (Map.Entry<String, ModuleMXBeanEntry> moduleNameToMbe : namespaceToModuleToMbe.getValue().entrySet()) { String moduleName = moduleNameToMbe.getKey(); ModuleMXBeanEntry moduleMXBeanEntry = moduleNameToMbe.getValue(); ModuleConfig moduleConfig = new ModuleConfig(moduleName, new InstanceConfig(configRegistryClient,moduleMXBeanEntry.getAttributes(), moduleMXBeanEntry.getNullableDummyContainerName())); Map<String, ModuleConfig> moduleNameToModuleConfig = namespaceToModuleNameToModuleConfig.get(namespaceToModuleToMbe.getKey()); if(moduleNameToModuleConfig == null) { moduleNameToModuleConfig = Maps.newHashMap(); namespaceToModuleNameToModuleConfig.put(namespaceToModuleToMbe.getKey(), moduleNameToModuleConfig); } moduleNameToModuleConfig.put(moduleName, moduleConfig); } } return namespaceToModuleNameToModuleConfig; }
private Map<String, Map<String, ModuleRuntime>> createModuleRuntimes(ConfigRegistryClient configRegistryClient, Map<String, Map<String, ModuleMXBeanEntry>> mBeanEntries) { Map<String, Map<String, ModuleRuntime>> retVal = Maps.newHashMap(); for (Map.Entry<String, Map<String, ModuleMXBeanEntry>> namespaceToModuleEntry : mBeanEntries.entrySet()) { Map<String, ModuleRuntime> innerMap = Maps.newHashMap(); Map<String, ModuleMXBeanEntry> entriesFromNamespace = namespaceToModuleEntry.getValue(); for (Map.Entry<String, ModuleMXBeanEntry> moduleToMXEntry : entriesFromNamespace.entrySet()) { ModuleMXBeanEntry mbe = moduleToMXEntry.getValue(); Map<RuntimeBeanEntry, InstanceConfig> cache = Maps.newHashMap(); RuntimeBeanEntry root = null; for (RuntimeBeanEntry rbe : mbe.getRuntimeBeans()) { cache.put(rbe, new InstanceConfig(configRegistryClient, rbe.getYangPropertiesToTypesMap(), mbe.getNullableDummyContainerName())); if (rbe.isRoot()){ root = rbe; } } if (root == null){ continue; } InstanceRuntime rootInstanceRuntime = createInstanceRuntime(root, cache); ModuleRuntime moduleRuntime = new ModuleRuntime(rootInstanceRuntime); innerMap.put(moduleToMXEntry.getKey(), moduleRuntime); } retVal.put(namespaceToModuleEntry.getKey(), innerMap); } return retVal; }
public static Map<String, GeneralClassTemplate> tOsFromMbe( final ModuleMXBeanEntry mbe) { Map<String, GeneralClassTemplate> retVal = Maps.newHashMap(); TOAttributesProcessor processor = new TOAttributesProcessor(); processor.processAttributes(mbe.getAttributes()); for (org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.TemplateFactory.TOAttributesProcessor.TOInternal to : processor .getTOs()) { List<Constructor> constructors = Lists.newArrayList(); constructors.add(new Constructor(to.getName(), "super();")); Header header = getHeaderFromEntry(mbe); retVal.put( to.getType(), new GeneralClassTemplate(header, mbe.getPackageName(), to .getName(), Collections.<String> emptyList(), Collections.<String> emptyList(), to.getFields(), to.getMethods(), false, false, constructors)); } return retVal; }
List<FtlTemplate> allFtlFiles = getRuntimeBeanFtlTemplates(mbe.getRuntimeBeans()); for(FtlTemplate template: allFtlFiles) { gos.put(new GenericGeneratedObjectFactory().toGeneratedObject(template, COPYRIGHT), true); + mbe.getJavaNamePrefix(); LOG.error(message, e); throw new RuntimeException(message, e);
Collections.unmodifiableMap(ModuleMXBeanEntry.create(module, qNamesToSIEs, resolveSchemaContext, typeProviderWrapper, packageName)); moduleMXBeanEntryMap.put(module.getNamespace().toString(), namesToMBEs);
private static Rpcs mapRpcs(final Map<String, Map<String, ModuleMXBeanEntry>> mBeanEntries, final EnumResolver enumResolver) { final Map<String, Map<String, ModuleRpcs>> map = Maps.newHashMap(); for (final Map.Entry<String, Map<String, ModuleMXBeanEntry>> namespaceToModuleEntry : mBeanEntries.entrySet()) { Map<String, ModuleRpcs> namespaceToModules = map.get(namespaceToModuleEntry.getKey()); if (namespaceToModules == null) { namespaceToModules = Maps.newHashMap(); map.put(namespaceToModuleEntry.getKey(), namespaceToModules); } for (final Map.Entry<String, ModuleMXBeanEntry> moduleEntry : namespaceToModuleEntry.getValue().entrySet()) { ModuleRpcs rpcMapping = namespaceToModules.get(moduleEntry.getKey()); if (rpcMapping == null) { rpcMapping = new ModuleRpcs(enumResolver); namespaceToModules.put(moduleEntry.getKey(), rpcMapping); } final ModuleMXBeanEntry entry = moduleEntry.getValue(); for (final RuntimeBeanEntry runtimeEntry : entry.getRuntimeBeans()) { rpcMapping.addNameMapping(runtimeEntry); for (final Rpc rpc : runtimeEntry.getRpcs()) { rpcMapping.addRpc(runtimeEntry, rpc); } } } } return new Rpcs(map); }
public String getAbstractFactoryName() { return ABSTRACT_PREFIX + getStubFactoryName(); }
public String getAbstractModuleName() { return ABSTRACT_PREFIX + getStubModuleName(); }
Collections.unmodifiableMap(ModuleMXBeanEntry.create(module, qNamesToSIEs, resolveSchemaContext, typeProviderWrapper, packageName)); moduleMXBeanEntryMap.put(module.getNamespace().toString(), namesToMBEs);