Java class generation does not handle choices and according parent member access correctly:
During compilation i get this error:
[javac] Compiling 472 source files to C:\zosel\work\workspace-psi\rds-trunk\build\classes
[javac] C:\zosel\work\workspace-psi\rds-trunk\generate\psi\all\__DepthFirstVisitor.java:327: cannot find symbol
[javac] symbol : class AreaCoordXYDiff
[javac] location: class psi.all.__DepthFirstVisitor
[javac] visitBitField(node.getDx(), ((AreaCoordXYDiff)__cc.find("AreaCoordXYDiff")).getNumBits(), "dx");
However the class AreaCoordXYDiff exists under psi/bmd/areas.
I assume that the import statement of psi\all\__DepthFirstVisitor.java is not correct. Currently it has following:
package psi.all;
... (datascript and java related stuff)
// DS-Import
import psi.poi.poidatabase.*;
import psi.name.namedatabase.*;
import psi.overall.psfversion.*;
import psi.overall.productdbversion.*;
import psi.routing.routing.*;
import psi.bmd.main.*;
import psi.tmc.tmc.*;
import psi.common.*;
When I add import psi.bmd.areas.*; here the error does not occur. (Note that there are several other errors in the same shape.) Therefore i assume the generation of the import statement is not correct for parent member accesses and/or choices.
Logged In: YES
user_id=601556
Originator: NO
Import is not transitive.
The umbrella package all.ds must list all packages that are required directly or indirectly.
Logged In: YES
user_id=1766668
Originator: YES
Ok, I think this has nothing to do with transitive imports then, but with lack of full qualified types.
I get following as part of psi\all\__DepthFirstVisitor.java:
public void visit(psi.bmd.areas.AreaCoordXYDiffTail node, Object arg) --> Here AreaCoordXYDiffTail is full qualified
{
// StartType
try
{
__cc.push("AreaCoordXYDiffTail", node);
visitBitField(node.getSignX(), 1, "signX");
visitBitField(node.getDx(), ((AreaCoordXYDiff)__cc.find("AreaCoordXYDiff")).getNumBits(), "dx"); --> Here i get an error, because AreaCoordXYDiff is NOT fully qualified
visitBitField(node.getSignY(), 1, "signY");
visitBitField(node.getDy(), ((AreaCoordXYDiff)__cc.find("AreaCoordXYDiff")).getNumBits(), "dy");
visitBitField(node.getIsPseudo(), 1, "isPseudo");
visitBitField(node.getPolygonFlag(), 1, "polygonFlag");
}
catch (Exception __exc)
{
__exc.printStackTrace();
}
finally
{
__cc.pop();
}
// EndType
}
Most of errors i get are of this kind.