38
38
import org .eclipse .jdt .core .dom .ForStatement ;
39
39
import org .eclipse .jdt .core .dom .IBinding ;
40
40
import org .eclipse .jdt .core .dom .IMethodBinding ;
41
- import org .eclipse .jdt .core .dom .IPackageBinding ;
41
+ // import org.eclipse.jdt.core.dom.IPackageBinding;
42
42
import org .eclipse .jdt .core .dom .ITypeBinding ;
43
43
import org .eclipse .jdt .core .dom .IVariableBinding ;
44
44
import org .eclipse .jdt .core .dom .IfStatement ;
@@ -1001,6 +1001,7 @@ public boolean visit(QualifiedName node) {
1001
1001
}
1002
1002
}
1003
1003
ASTNode parent = node .getParent ();
1004
+ boolean qualifierVisited = false ;
1004
1005
if (parent != null && !(parent instanceof QualifiedName )) {
1005
1006
Name qualifier = node .getQualifier ();
1006
1007
while (qualifier instanceof QualifiedName ) {
@@ -1022,18 +1023,21 @@ public boolean visit(QualifiedName node) {
1022
1023
if (!(binding instanceof IVariableBinding )) {
1023
1024
ITypeBinding typeBinding = qualifier .resolveTypeBinding ();
1024
1025
if (typeBinding != null ) {
1025
- String name = null ;
1026
- ITypeBinding declaringClass = typeBinding .getDeclaringClass ();
1027
- if (declaringClass != null ) {
1028
- name = declaringClass .getQualifiedName ();
1029
- } else {
1030
- IPackageBinding pkg = typeBinding .getPackage ();
1031
- if (pkg != null ) {
1032
- name = pkg .getName ();
1033
- } else {
1034
- name = "" ;
1035
- }
1036
- }
1026
+ // Compiling inner Class or enum type, like:
1027
+ // RadiusData.EnumType e = RadiusData.EnumType.THREE;
1028
+ // avoid generate duplicated RadiusData
1029
+ String name = typeBinding .getQualifiedName ();
1030
+ // ITypeBinding declaringClass = typeBinding.getDeclaringClass();
1031
+ // if (declaringClass != null) {
1032
+ // name = declaringClass.getQualifiedName();
1033
+ // } else {
1034
+ // IPackageBinding pkg = typeBinding.getPackage();
1035
+ // if (pkg != null) {
1036
+ // name = pkg.getName();
1037
+ // } else {
1038
+ // name = "";
1039
+ // }
1040
+ // }
1037
1041
String xhtml = "net.sf.j2s.html." ;
1038
1042
if (name .indexOf (xhtml ) == 0 ) {
1039
1043
name = name .substring (xhtml .length ());
@@ -1044,6 +1048,7 @@ public boolean visit(QualifiedName node) {
1044
1048
if (name .length () != 0 ) {
1045
1049
buffer .append (name );
1046
1050
buffer .append ('.' );
1051
+ qualifierVisited = true ;
1047
1052
}
1048
1053
}
1049
1054
}
@@ -1056,8 +1061,10 @@ public boolean visit(QualifiedName node) {
1056
1061
node .getName ().accept (this );
1057
1062
return false ;
1058
1063
}
1059
- qName .accept (this );
1060
- buffer .append ('.' );
1064
+ if (!qualifierVisited ) {
1065
+ qName .accept (this );
1066
+ buffer .append ('.' );
1067
+ }
1061
1068
node .getName ().accept (this );
1062
1069
return false ;
1063
1070
}
0 commit comments