import org.opendaylight.controller.config.yangjmxgenerator.TypeProviderWrapper;
import org.opendaylight.yangtools.sal.binding.yang.types.TypeProviderImpl;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator;
import java.io.File;
import java.io.IOException;
-import java.util.*;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
private boolean generateModuleFactoryFile = true;
public JMXGenerator() {
- this.codeWriter = new FreeMarkerCodeWriterImpl();
+ this.codeWriter = new CodeWriter();
}
public JMXGenerator(CodeWriter codeWriter) {
@Override
public Collection<File> generateSources(SchemaContext context,
- File outputBaseDir, Set<Module> yangModulesInCurrentMavenModule) {
+ File outputBaseDir, Set<Module> yangModulesInCurrentMavenModule) {
Preconditions.checkArgument(context != null, "Null context received");
Preconditions.checkArgument(outputBaseDir != null,
outputBaseDir.mkdirs();
GeneratedFilesTracker generatedFiles = new GeneratedFilesTracker();
+ // create SIE structure qNamesToSIEs
Map<QName, ServiceInterfaceEntry> qNamesToSIEs = new HashMap<>();
- // create SIE structure qNamesToSIEs
+
+ Map<IdentitySchemaNode, ServiceInterfaceEntry> knownSEITracker = new HashMap<>();
for (Module module : context.getModules()) {
String packageName = packageTranslator.getPackageName(module);
Map<QName, ServiceInterfaceEntry> namesToSIEntries = ServiceInterfaceEntry
- .create(module, packageName);
+ .create(module, packageName, knownSEITracker);
for (Entry<QName, ServiceInterfaceEntry> sieEntry : namesToSIEntries
.entrySet()) {
-
// merge value into qNamesToSIEs
if (qNamesToSIEs.containsKey(sieEntry.getKey()) == false) {
qNamesToSIEs.put(sieEntry.getKey(), sieEntry.getValue());
} else {
throw new IllegalStateException(
- "Cannot add two SIE with same qname "
- + sieEntry.getValue());
+ "Cannot add two SIE with same qname "
+ + sieEntry.getValue());
}
}
if (yangModulesInCurrentMavenModule.contains(module)) {
ModuleMXBeanEntry mbe = mbeEntry.getValue();
try {
List<File> files1 = codeWriter.writeMbe(mbe, outputBaseDir,
- mainBaseDir, resourceBaseDir);
+ mainBaseDir);
generatedFiles.addFile(files1);
} catch (Exception e) {
throw new RuntimeException(
@Override
public void setLog(Log log) {
- StaticLoggerBinder.getSingleton().setLog(log);
+ StaticLoggerBinder.getSingleton().setMavenLog(log);
}
private static Map<String, String> extractNamespaceMapping(