import org.opendaylight.yangtools.yang.binding.Identifiable
import com.google.common.collect.Range
import org.opendaylight.yangtools.sal.binding.model.api.ConcreteType
-import com.google.common.collect.ImmutableList
/**
* Template for generating JAVA builder classes.
}
«ENDIF»
«FOR field : allProps»
- «IF List.canonicalName.equals(field.returnType.fullyQualifiedName)»
- if (base.«field.getterMethodName»() == null || base.«field.getterMethodName»().isEmpty()) {
- this.«field.fieldName» = «Collections.importedName».emptyList();
- } else {
- this.«field.fieldName» = «ImmutableList.importedName».copyOf(base.«field.getterMethodName»());
- }
- «ELSE»
- this.«field.fieldName» = base.«field.getterMethodName»();
- «ENDIF»
+ this.«field.fieldName» = base.«field.getterMethodName»();
«ENDFOR»
«IF augmentField != null»
«IF !impl»if (base instanceof «type.name»«IMPL») {«ENDIF»
'''
}
+
import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.getSourceFiles;
import static org.opendaylight.yangtools.sal.java.api.generator.test.CompilationTestUtils.testCompilation;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Lists;
import com.google.common.collect.Range;
import java.io.File;
import java.lang.annotation.Annotation;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import org.junit.Test;
-import org.mockito.Mockito;
import org.opendaylight.yangtools.sal.binding.model.api.Type;
import org.opendaylight.yangtools.sal.java.api.generator.GeneratorJavaFile;
import org.opendaylight.yangtools.yang.binding.ChildOf;
cleanUp(sourcesOutputDir, compiledOutputDir);
}
- @Test
- public void testBug1097() throws Exception {
- final File sourcesOutputDir = new File(GENERATOR_OUTPUT_PATH + FS + "bug1097");
- assertTrue("Failed to create test file '" + sourcesOutputDir + "'", sourcesOutputDir.mkdir());
- final File compiledOutputDir = new File(COMPILER_OUTPUT_PATH + FS + "bug1097");
- assertTrue("Failed to create test file '" + compiledOutputDir + "'", compiledOutputDir.mkdir());
-
- generateTestSources("/compilation/bug1097", sourcesOutputDir);
-
- // Test if sources are compilable
- testCompilation(sourcesOutputDir, compiledOutputDir);
-
- ClassLoader loader = new URLClassLoader(new URL[] { compiledOutputDir.toURI().toURL() });
- Class<?> linkClass = Class.forName(BASE_PKG + ".urn.test.foo.rev140717.Link", true, loader);
- Class<?> linkBuilderClass = Class.forName(BASE_PKG + ".urn.test.foo.rev140717.LinkBuilder", true, loader);
- Class<?> nodeClass = Class.forName(BASE_PKG + ".urn.test.foo.rev140717.link.Node", true, loader);
-
- // Test LinkBuilder without setting any value
- Object linkBuilder = linkBuilderClass.newInstance();
- Method build = linkBuilderClass.getDeclaredMethod("build");
- Object link = build.invoke(linkBuilder);
- Method getNodes = linkClass.getDeclaredMethod("getNode");
- Object node = getNodes.invoke(link);
- assertEquals(Collections.emptyList(), node);
-
- // Test LinkBuilder with setting an empty list
- linkBuilder = linkBuilderClass.newInstance();
- Method setNode = linkBuilderClass.getDeclaredMethod("setNode", List.class);
- setNode.invoke(linkBuilder, Collections.emptyList());
- link = build.invoke(linkBuilder);
- node = getNodes.invoke(link);
- assertEquals(Collections.emptyList(), node);
-
- // Test LinkBuilder with setting list with values
- linkBuilder = linkBuilderClass.newInstance();
- List<?> testList = Lists.newArrayList(Mockito.mock(nodeClass), Mockito.mock(nodeClass));
- setNode.invoke(linkBuilder, testList);
- link = build.invoke(linkBuilder);
- node = getNodes.invoke(link);
- assertEquals(testList, node);
- assertTrue(node instanceof ImmutableList);
-
- cleanUp(sourcesOutputDir, compiledOutputDir);
- }
-
@Test
public void classNamesColisionTest() throws Exception {
final File sourcesOutputDir = new File(GENERATOR_OUTPUT_PATH + FS + "class-name-collision");