Use pre-instantiated and cached QNames, so we do not end up wasting
space unnecessarily.
Change-Id: I7ff7b9a098fbf182770d07ccbd0b9bb60334fb82
Signed-off-by: Robert Varga <rovarga@cisco.com>
package org.opendaylight.controller.config.yangjmxgenerator;
import org.opendaylight.yangtools.yang.common.QName;
package org.opendaylight.controller.config.yangjmxgenerator;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
-public class ConfigConstants {
+public final class ConfigConstants {
private ConfigConstants() {
}
private ConfigConstants() {
}
- public static final String CONFIG_NAMESPACE = "urn:opendaylight:params:xml:ns:yang:controller:config";
+ private static final QName DUMMY_CONFIG_QNAME = QName.create(
+ "urn:opendaylight:params:xml:ns:yang:controller:config", "2013-04-05", "dummy");
+ private static final QName DUMM_RPC_QNAME = QName.create(
+ "urn:ietf:params:xml:ns:yang:rpc-context", "2013-06-17", "dummy");
+ private static final QNameModule CONFIG_MOD = QNameModule.cachedReference(DUMMY_CONFIG_QNAME.getModule());
+ private static final QNameModule RPC_MOD = QNameModule.cachedReference(DUMM_RPC_QNAME.getModule());
+ public static final String CONFIG_NAMESPACE = CONFIG_MOD.getNamespace().toString();
public static final String CONFIG_MODULE = "config";
public static final String CONFIG_THREADS_MODULE = "config-threads";
public static final String IETF_INET_TYPES = "ietf-inet-types";
public static final String CONFIG_MODULE = "config";
public static final String CONFIG_THREADS_MODULE = "config-threads";
public static final String IETF_INET_TYPES = "ietf-inet-types";
public static final QName RPC_CONTEXT_INSTANCE_EXTENSION_QNAME = createRpcXQName("rpc-context-instance");
public static QName createConfigQName(final String localName) {
public static final QName RPC_CONTEXT_INSTANCE_EXTENSION_QNAME = createRpcXQName("rpc-context-instance");
public static QName createConfigQName(final String localName) {
- // FIXME: pre-construct QNameModule
- return QName.create(CONFIG_NAMESPACE, "2013-04-05", localName);
+ return QName.create(CONFIG_MOD, localName);
}
public static QName createRpcXQName(final String localName) {
}
public static QName createRpcXQName(final String localName) {
- // FIXME: pre-construct QNameModule
- return QName.create("urn:ietf:params:xml:ns:yang:rpc-context",
- "2013-06-17", localName);
+ return QName.create(RPC_MOD, localName);
// TODO: the XPath should be parsed by code generator IMO
private static final String MAGIC_STRING = "MAGIC_STRING";
private static final String MODULE_CONDITION_XPATH_TEMPLATE = "^/MAGIC_STRING:modules/MAGIC_STRING:module/MAGIC_STRING:type\\s*=\\s*['\"](.+)['\"]$";
// TODO: the XPath should be parsed by code generator IMO
private static final String MAGIC_STRING = "MAGIC_STRING";
private static final String MODULE_CONDITION_XPATH_TEMPLATE = "^/MAGIC_STRING:modules/MAGIC_STRING:module/MAGIC_STRING:type\\s*=\\s*['\"](.+)['\"]$";
- private static final SchemaPath EXPECTED_CONFIGURATION_AUGMENTATION_SCHEMA_PATH = SchemaPath.create(true,
- createConfigQName("modules"), createConfigQName("module"), createConfigQName("configuration"));
- private static final SchemaPath EXPECTED_STATE_AUGMENTATION_SCHEMA_PATH = SchemaPath.create(true,
- createConfigQName("modules"), createConfigQName("module"), createConfigQName("state"));
- private static final Pattern PREFIX_COLON_LOCAL_NAME = Pattern
- .compile("^(.+):(.+)$");
+ private static final SchemaPath AUGMENT_SCHEMAPATH = SchemaPath.create(true,
+ createConfigQName("modules"), createConfigQName("module"));
+
+ private static final SchemaPath EXPECTED_CONFIGURATION_AUGMENTATION_SCHEMA_PATH =
+ AUGMENT_SCHEMAPATH.createChild(createConfigQName("configuration"));
+ private static final SchemaPath EXPECTED_STATE_AUGMENTATION_SCHEMA_PATH =
+ AUGMENT_SCHEMAPATH.createChild(createConfigQName("state"));
+ private static final Pattern PREFIX_COLON_LOCAL_NAME = Pattern.compile("^(.+):(.+)$");
public Map<String, ModuleMXBeanEntry> build() {
LOG.debug("Generating ModuleMXBeans of {} to package {}",
public Map<String, ModuleMXBeanEntry> build() {
LOG.debug("Generating ModuleMXBeans of {} to package {}",
return moduleIdentities;
}
return moduleIdentities;
}
- private Collection<ChoiceCaseNode> castChildNodesToChoiceCases(final Collection<DataSchemaNode> childNodes) {
+ private static Collection<ChoiceCaseNode> castChildNodesToChoiceCases(final Collection<DataSchemaNode> childNodes) {
return Collections2.transform(childNodes, new Function<DataSchemaNode, ChoiceCaseNode>() {
@Nullable
@Override
return Collections2.transform(childNodes, new Function<DataSchemaNode, ChoiceCaseNode>() {
@Nullable
@Override
- private boolean areAllChildrenChoiceCaseNodes(final Iterable<DataSchemaNode> childNodes) {
+ private static boolean areAllChildrenChoiceCaseNodes(final Iterable<DataSchemaNode> childNodes) {
for (DataSchemaNode childNode : childNodes) {
if (childNode instanceof ChoiceCaseNode == false) {
return false;
for (DataSchemaNode childNode : childNodes) {
if (childNode instanceof ChoiceCaseNode == false) {
return false;
- private void checkUniqueRuntimeBeansGeneratedClasses(final Map<String, QName> uniqueGeneratedClassesNames,
+ private static void checkUniqueRuntimeBeansGeneratedClasses(final Map<String, QName> uniqueGeneratedClassesNames,
final DataSchemaNode when, final Collection<RuntimeBeanEntry> runtimeBeans) {
for (RuntimeBeanEntry runtimeBean : runtimeBeans) {
final String javaNameOfRuntimeMXBean = runtimeBean.getJavaNameOfRuntimeMXBean();
final DataSchemaNode when, final Collection<RuntimeBeanEntry> runtimeBeans) {
for (RuntimeBeanEntry runtimeBean : runtimeBeans) {
final String javaNameOfRuntimeMXBean = runtimeBean.getJavaNameOfRuntimeMXBean();
* @param choiceCaseNode state or configuration case statement
* @return either choiceCaseNode or its only child container
*/
* @param choiceCaseNode state or configuration case statement
* @return either choiceCaseNode or its only child container
*/
- private <HAS_CHILDREN_AND_QNAME extends DataNodeContainer & SchemaNode> HAS_CHILDREN_AND_QNAME getDataNodeContainer(final ChoiceCaseNode choiceCaseNode) {
+ private static <HAS_CHILDREN_AND_QNAME extends DataNodeContainer & SchemaNode> HAS_CHILDREN_AND_QNAME getDataNodeContainer(final ChoiceCaseNode choiceCaseNode) {
Collection<DataSchemaNode> childNodes = choiceCaseNode.getChildNodes();
if (childNodes.size() == 1) {
DataSchemaNode onlyChild = childNodes.iterator().next();
Collection<DataSchemaNode> childNodes = choiceCaseNode.getChildNodes();
if (childNodes.size() == 1) {
DataSchemaNode onlyChild = childNodes.iterator().next();
return (HAS_CHILDREN_AND_QNAME) choiceCaseNode;
}
return (HAS_CHILDREN_AND_QNAME) choiceCaseNode;
}
- private Map<String, AttributeIfc> fillConfiguration(final DataNodeContainer dataNodeContainer, final Module currentModule,
+ private static Map<String, AttributeIfc> fillConfiguration(final DataNodeContainer dataNodeContainer, final Module currentModule,
final TypeProviderWrapper typeProviderWrapper, final Map<QName, ServiceInterfaceEntry> qNamesToSIEs,
final SchemaContext schemaContext, final String packageName) {
Map<String, AttributeIfc> yangToAttributes = new HashMap<>();
final TypeProviderWrapper typeProviderWrapper, final Map<QName, ServiceInterfaceEntry> qNamesToSIEs,
final SchemaContext schemaContext, final String packageName) {
Map<String, AttributeIfc> yangToAttributes = new HashMap<>();
return yangToAttributes;
}
return yangToAttributes;
}
- private Map<String, QName> findProvidedServices(final IdentitySchemaNode moduleIdentity, final Module currentModule,
+ private static Map<String, QName> findProvidedServices(final IdentitySchemaNode moduleIdentity, final Module currentModule,
final Map<QName, ServiceInterfaceEntry> qNamesToSIEs, final SchemaContext schemaContext) {
Map<String, QName> result = new HashMap<>();
for (UnknownSchemaNode unknownNode : moduleIdentity.getUnknownSchemaNodes()) {
final Map<QName, ServiceInterfaceEntry> qNamesToSIEs, final SchemaContext schemaContext) {
Map<String, QName> result = new HashMap<>();
for (UnknownSchemaNode unknownNode : moduleIdentity.getUnknownSchemaNodes()) {
- private AttributeIfc getAttributeValue(final DataSchemaNode attrNode, final Module currentModule,
+ private static AttributeIfc getAttributeValue(final DataSchemaNode attrNode, final Module currentModule,
final Map<QName, ServiceInterfaceEntry> qNamesToSIEs, final TypeProviderWrapper typeProviderWrapper,
final SchemaContext schemaContext, final String packageName) {
final Map<QName, ServiceInterfaceEntry> qNamesToSIEs, final TypeProviderWrapper typeProviderWrapper,
final SchemaContext schemaContext, final String packageName) {
- private Optional<? extends AbstractDependencyAttribute> extractDependency(final DataNodeContainer dataNodeContainer,
+ private static Optional<? extends AbstractDependencyAttribute> extractDependency(final DataNodeContainer dataNodeContainer,
final DataSchemaNode attrNode, final Module currentModule, final Map<QName, ServiceInterfaceEntry> qNamesToSIEs,
final SchemaContext schemaContext) {
if (isDependencyContainer(dataNodeContainer)) {
final DataSchemaNode attrNode, final Module currentModule, final Map<QName, ServiceInterfaceEntry> qNamesToSIEs,
final SchemaContext schemaContext) {
if (isDependencyContainer(dataNodeContainer)) {
return Optional.absent();
}
return Optional.absent();
}
- private boolean isDependencyContainer(final DataNodeContainer dataNodeContainer) {
+ private static boolean isDependencyContainer(final DataNodeContainer dataNodeContainer) {
if(dataNodeContainer.getUses().size() != 1) {
return false;
}
if(dataNodeContainer.getUses().size() != 1) {
return false;
}
return getChildNodeSizeWithoutUses(dataNodeContainer) == 0;
}
return getChildNodeSizeWithoutUses(dataNodeContainer) == 0;
}
- private int getChildNodeSizeWithoutUses(final DataNodeContainer csn) {
+ private static int getChildNodeSizeWithoutUses(final DataNodeContainer csn) {
int result = 0;
for (DataSchemaNode dsn : csn.getChildNodes()) {
if (dsn.isAddedByUses() == false) {
int result = 0;
for (DataSchemaNode dsn : csn.getChildNodes()) {
if (dsn.isAddedByUses() == false) {
- private ServiceInterfaceEntry findSIE(final String prefixAndIdentityLocalName, final Module currentModule,
+ private static ServiceInterfaceEntry findSIE(final String prefixAndIdentityLocalName, final Module currentModule,
final Map<QName, ServiceInterfaceEntry> qNamesToSIEs, final SchemaContext schemaContext) {
Matcher m = PREFIX_COLON_LOCAL_NAME.matcher(prefixAndIdentityLocalName);
final Map<QName, ServiceInterfaceEntry> qNamesToSIEs, final SchemaContext schemaContext) {
Matcher m = PREFIX_COLON_LOCAL_NAME.matcher(prefixAndIdentityLocalName);
- private ModuleImport findModuleImport(final Module module, final String prefix) {
+ private static ModuleImport findModuleImport(final Module module, final String prefix) {
for (ModuleImport moduleImport : module.getImports()) {
if (moduleImport.getPrefix().equals(prefix)) {
return moduleImport;
for (ModuleImport moduleImport : module.getImports()) {
if (moduleImport.getPrefix().equals(prefix)) {
return moduleImport;
return pattern.matcher(whenConstraint.toString());
}
return pattern.matcher(whenConstraint.toString());
}
- String getConfigModulePrefixFromImport(final Module currentModule) {
+ private static String getConfigModulePrefixFromImport(final Module currentModule) {
for (ModuleImport currentImport : currentModule.getImports()) {
if (currentImport.getModuleName().equals(ConfigConstants.CONFIG_MODULE)) {
return currentImport.getPrefix();
for (ModuleImport currentImport : currentModule.getImports()) {
if (currentImport.getModuleName().equals(ConfigConstants.CONFIG_MODULE)) {
return currentImport.getPrefix();