[491264] Use fully qualified class names in appendClassReference
diff --git a/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/java/JavaStream.java b/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/java/JavaStream.java
index 14b4006..fd3b9b7 100644
--- a/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/java/JavaStream.java
+++ b/examples/org.eclipse.ocl.examples.codegen/src/org/eclipse/ocl/examples/codegen/java/JavaStream.java
@@ -506,10 +506,12 @@
}
public void appendClassReference(@NonNull CGClass cgClass) {
+ StringBuilder s = new StringBuilder();
CGPackage cgPackage = cgClass.getContainingPackage();
- String packageName = cgPackage.getName();
- if (packageName != null) {
- appendClassReference(packageName + "." + cgClass.getName());
+ if ((cgPackage != null) && (cgPackage.getName() != null)) {
+ appendQualifyingPackage(s, cgPackage);
+ s.append(cgClass.getName());
+ appendClassReference(s.toString());
List<CGClass> cgTemplateParameters = cgClass.getTemplateParameters();
if (cgTemplateParameters.size() > 0) {
append("<");
@@ -808,6 +810,18 @@
}
}
+ private void appendQualifyingPackage(@NonNull StringBuilder s, @NonNull CGPackage cgPackage) {
+ CGPackage cgParentPackage = cgPackage.getContainingPackage();
+ if (cgParentPackage != null) {
+ appendQualifyingPackage(s, cgParentPackage);
+ }
+ String packageName = cgPackage.getName();
+ if (packageName != null) {
+ s.append(packageName);
+ s.append(".");
+ }
+ }
+
public void appendReferenceTo(@NonNull Class<?> requiredClass, @Nullable CGValuedElement cgValue) {
if (cgValue == null) {
append("<<null-appendReferenceTo>>");