@@ -782,29 +782,47 @@ public void endVisit(EnumDeclaration node) {
782782 if (idx != -1 && idx == buffer .length () - emptyFun .length ()) {
783783 buffer .replace (idx , buffer .length (), "Clazz.declareType (" );
784784 }
785-
786- String fullClassName = null ;//getFullClassName();
787- String packageName = ((ASTPackageVisitor ) getAdaptable (ASTPackageVisitor .class )).getPackageName ();
788- String className = ((ASTTypeVisitor ) getAdaptable (ASTTypeVisitor .class )).getClassName ();
789- if (packageName != null && packageName .length () != 0 ) {
790- fullClassName = packageName + '.' + className ;
791- } else {
792- fullClassName = className ;
793- }
794- // if (thisPackageName != null && thisPackageName.length() != 0) {
795- // fullClassName = thisPackageName + '.' + thisClassName;
796- // } else {
797- // fullClassName = thisClassName;
798- // }
799785
800- int lastIndexOf = fullClassName .lastIndexOf ('.' );
801- if (lastIndexOf != -1 ) {
802- buffer .append (assureQualifiedName (shortenPackageName (fullClassName )));
803- buffer .append (", \" " + fullClassName .substring (lastIndexOf + 1 ) + "\" " );
786+ ASTNode parent = node .getParent ();
787+ if (parent != null && parent instanceof AbstractTypeDeclaration ) {
788+ String packageName = ((ASTPackageVisitor ) getAdaptable (ASTPackageVisitor .class )).getPackageName ();
789+ String className = ((ASTTypeVisitor ) getAdaptable (ASTTypeVisitor .class )).getClassName ();
790+ //String className = ((AbstractTypeDeclaration) parent).getName().getFullyQualifiedName();
791+ String fullClassName = null ;
792+ if (packageName != null && packageName .length () != 0 ) {
793+ fullClassName = packageName + '.' + className ;
794+ } else {
795+ fullClassName = className ;
796+ }
797+ String name = node .getName ().getIdentifier ();
798+ buffer .append (assureQualifiedName (fullClassName ));
799+ buffer .append (", \" " + name + "\" " );
800+ buffer .append (", Enum" );
804801 } else {
805- buffer .append ("null, \" " + fullClassName + "\" " );
802+
803+ String fullClassName = null ;//getFullClassName();
804+ String packageName = ((ASTPackageVisitor ) getAdaptable (ASTPackageVisitor .class )).getPackageName ();
805+ String className = ((ASTTypeVisitor ) getAdaptable (ASTTypeVisitor .class )).getClassName ();
806+ if (packageName != null && packageName .length () != 0 ) {
807+ fullClassName = packageName + '.' + className ;
808+ } else {
809+ fullClassName = className ;
810+ }
811+ // if (thisPackageName != null && thisPackageName.length() != 0) {
812+ // fullClassName = thisPackageName + '.' + thisClassName;
813+ // } else {
814+ // fullClassName = thisClassName;
815+ // }
816+
817+ int lastIndexOf = fullClassName .lastIndexOf ('.' );
818+ if (lastIndexOf != -1 ) {
819+ buffer .append (assureQualifiedName (shortenPackageName (fullClassName )));
820+ buffer .append (", \" " + fullClassName .substring (lastIndexOf + 1 ) + "\" " );
821+ } else {
822+ buffer .append ("null, \" " + fullClassName + "\" " );
823+ }
824+ buffer .append (", Enum" );
806825 }
807- buffer .append (", Enum" );
808826
809827 List superInterfaces = node .superInterfaceTypes ();
810828 int size = superInterfaces .size ();
@@ -1022,33 +1040,46 @@ public boolean visit(EnumDeclaration node) {
10221040 * Never reach here!
10231041 * March 17, 2006
10241042 */
1025- buffer .append ("if (!Clazz.isClassDefined (\" " );
1026- buffer .append (visitor .getFullClassName ());
1027- buffer .append ("\" )) {\r \n " );
1043+ // buffer.append("if (!Clazz.isClassDefined (\"");
1044+ // buffer.append(visitor.getFullClassName());
1045+ // if (binding != null && !binding.isTopLevel()) {
1046+ // buffer.append("." + binding.getName());
1047+ // }
1048+ // buffer.append("\")) {\r\n");
10281049
10291050 //String className = typeVisitor.getClassName();
1030- methodBuffer .append ("cla$$.$" );
1031- String targetClassName = visitor .getClassName ();
1032- //String prefixKey = className + ".";
1033- //if (targetClassName.startsWith(prefixKey)) {
1034- // targetClassName = targetClassName.substring(prefixKey.length());
1035- //}
1036- targetClassName = targetClassName .replace ('.' , '$' );
1037- methodBuffer .append (targetClassName );
1038- methodBuffer .append ("$ = function () {\r \n " );
1051+ // methodBuffer.append("cla$$.$");
1052+ // String targetClassName = visitor.getClassName();
1053+ // //String prefixKey = className + ".";
1054+ // //if (targetClassName.startsWith(prefixKey)) {
1055+ // // targetClassName = targetClassName.substring(prefixKey.length());
1056+ // //}
1057+ // targetClassName = targetClassName.replace('.', '$');
1058+ // methodBuffer.append(targetClassName);
1059+ // if (binding != null && !binding.isTopLevel()) {
1060+ // methodBuffer.append("$" + binding.getName());
1061+ // }
1062+ // methodBuffer.append("$ = function () {\r\n");
10391063 methodBuffer .append ("Clazz.pu$h ();\r \n " );
10401064 methodBuffer .append (visitor .getBuffer ().toString ());
10411065 methodBuffer .append ("cla$$ = Clazz.p0p ();\r \n " );
1042- methodBuffer .append ("};\r \n " );
1043-
1044- buffer .append (visitor .getPackageName ());
1045- buffer .append ("." );
1046- buffer .append (targetClassName );
1047- buffer .append (".$" );
1048- buffer .append (visitor .getClassName ());
1049- buffer .append ("$ ();\r \n " );
1050-
1051- buffer .append ("}\r \n " );
1066+ // methodBuffer.append("};\r\n");
1067+ //
1068+ // String pkgName = visitor.getPackageName();
1069+ // if (pkgName != null && pkgName.length() > 0) {
1070+ // buffer.append(pkgName);
1071+ // buffer.append(".");
1072+ // }
1073+ // buffer.append(targetClassName);
1074+ // buffer.append(".$");
1075+ // buffer.append(visitor.getClassName());
1076+ // buffer.append("$");
1077+ // if (binding != null && !binding.isTopLevel()) {
1078+ // buffer.append(binding.getName());
1079+ // }
1080+ // buffer.append("$ ();\r\n");
1081+ //
1082+ // buffer.append("}\r\n");
10521083 }
10531084 return false ;
10541085 }
@@ -3063,8 +3094,11 @@ public static void main(String[] args) {
30633094 methodBuffer .append ("cla$$ = Clazz.p0p ();\r \n " );
30643095 methodBuffer .append ("};\r \n " );
30653096
3066- buffer .append (visitor .getPackageName ());
3067- buffer .append ("." );
3097+ String pkgName = visitor .getPackageName ();
3098+ if (pkgName != null && pkgName .length () > 0 ) {
3099+ buffer .append (pkgName );
3100+ buffer .append ("." );
3101+ }
30683102 buffer .append (className );
30693103 buffer .append (".$" );
30703104 buffer .append (targetClassName );
0 commit comments