Skip to content

Commit 411784b

Browse files
author
emmanue1
committed
Update API for Java modules
1 parent b55c932 commit 411784b

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed

src/main/java/org/jd/core/v1/service/fragmenter/javasyntaxtojavafragment/visitor/CompilationUnitVisitor.java

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ public void visit(ConstructorDeclaration declaration) {
349349
}
350350

351351
// Build token for type declaration
352-
tokens.add(new DeclarationToken(DeclarationToken.CONSTRUCTOR_FLAG, currentInternalTypeName, currentTypeName, declaration.getDescriptor()));
352+
tokens.add(new DeclarationToken(DeclarationToken.CONSTRUCTOR, currentInternalTypeName, currentTypeName, declaration.getDescriptor()));
353353

354354
storeContext();
355355
currentMethodParamNames.clear();
@@ -569,7 +569,7 @@ public void visit(EnumDeclaration.Constant declaration) {
569569

570570
// Build token for type declaration
571571
tokens.addLineNumberToken(declaration.getLineNumber());
572-
tokens.add(new DeclarationToken(DeclarationToken.FIELD_FLAG, currentInternalTypeName, declaration.getName(), 'L' + currentInternalTypeName + ';'));
572+
tokens.add(new DeclarationToken(DeclarationToken.FIELD, currentInternalTypeName, declaration.getName(), 'L' + currentInternalTypeName + ';'));
573573

574574
storeContext();
575575
currentMethodParamNames.clear();
@@ -648,19 +648,19 @@ public void visit(FieldDeclarator fieldDeclarator) {
648648

649649
switch (fieldDeclarator.getDimension()) {
650650
case 0:
651-
tokens.add(new DeclarationToken(DeclarationToken.FIELD_FLAG, currentInternalTypeName, fieldDeclarator.getName(), descriptor));
651+
tokens.add(new DeclarationToken(DeclarationToken.FIELD, currentInternalTypeName, fieldDeclarator.getName(), descriptor));
652652
break;
653653
case 1:
654-
tokens.add(new DeclarationToken(DeclarationToken.FIELD_FLAG, currentInternalTypeName, fieldDeclarator.getName(), "[" + descriptor));
654+
tokens.add(new DeclarationToken(DeclarationToken.FIELD, currentInternalTypeName, fieldDeclarator.getName(), "[" + descriptor));
655655
tokens.add(TextToken.DIMENSION_1);
656656
break;
657657
case 2:
658-
tokens.add(new DeclarationToken(DeclarationToken.FIELD_FLAG, currentInternalTypeName, fieldDeclarator.getName(), "[[" + descriptor));
658+
tokens.add(new DeclarationToken(DeclarationToken.FIELD, currentInternalTypeName, fieldDeclarator.getName(), "[[" + descriptor));
659659
tokens.add(TextToken.DIMENSION_2);
660660
break;
661661
default:
662662
descriptor = new String(new char[fieldDeclarator.getDimension()]).replaceAll("\0", "[") + descriptor;
663-
tokens.add(new DeclarationToken(DeclarationToken.FIELD_FLAG, currentInternalTypeName, fieldDeclarator.getName(), descriptor));
663+
tokens.add(new DeclarationToken(DeclarationToken.FIELD, currentInternalTypeName, fieldDeclarator.getName(), descriptor));
664664
tokens.add(newTextToken(new String(new char[fieldDeclarator.getDimension()]).replaceAll("\0", "[]")));
665665
break;
666666
}
@@ -827,7 +827,7 @@ public void visit(ModuleDeclaration declaration) {
827827

828828
tokens.add(MODULE);
829829
tokens.add(TextToken.SPACE);
830-
tokens.add(new TextToken(declaration.getName()));
830+
tokens.add(new DeclarationToken(DeclarationToken.MODULE, declaration.getName().replace('.', '/'), declaration.getName(), null));
831831
fragments.addTokensFragment(tokens);
832832

833833
StartBodyFragment start = JavaFragmentFactory.addStartTypeBody(fragments);
@@ -905,40 +905,47 @@ public void visit(ModuleDeclaration declaration) {
905905
protected void visitModuleDeclaration(ModuleDeclaration.ModuleInfo moduleInfo) {
906906
tokens.add(REQUIRES);
907907

908+
if ((moduleInfo.getFlags() & FLAG_STATIC) != 0) {
909+
tokens.add(TextToken.SPACE);
910+
tokens.add(STATIC);
911+
}
908912
if ((moduleInfo.getFlags() & FLAG_TRANSITIVE) != 0) {
909913
tokens.add(TextToken.SPACE);
910914
tokens.add(TRANSITIVE);
911915
}
912916

913917
tokens.add(TextToken.SPACE);
914-
tokens.add(new TextToken(moduleInfo.getName()));
918+
tokens.add(new ReferenceToken(ReferenceToken.MODULE, moduleInfo.getName().replace('.', '/'), moduleInfo.getName(), null, null));
915919
tokens.add(TextToken.SEMICOLON);
916920
}
917921

918922
protected void visitModuleDeclaration(ModuleDeclaration.PackageInfo packageInfo, KeywordToken keywordToken) {
919923
tokens.add(keywordToken);
920924
tokens.add(TextToken.SPACE);
921-
tokens.add(new TextToken(packageInfo.getInternalName().replace('/', '.')));
925+
tokens.add(new ReferenceToken(ReferenceToken.PACKAGE, packageInfo.getInternalName(), packageInfo.getInternalName().replace('/', '.'), null, null));
922926

923927
if ((packageInfo.getModuleInfoNames() != null) && !packageInfo.getModuleInfoNames().isEmpty()) {
924928
tokens.add(TextToken.SPACE);
925929
tokens.add(TO);
926930

927931
if (packageInfo.getModuleInfoNames().size() == 1) {
928932
tokens.add(TextToken.SPACE);
929-
tokens.add(new TextToken(packageInfo.getModuleInfoNames().get(0)));
933+
String moduleInfoName = packageInfo.getModuleInfoNames().get(0);
934+
tokens.add(new ReferenceToken(ReferenceToken.MODULE, moduleInfoName.replace('.', '/'), moduleInfoName, null, null));
930935
} else {
931936
tokens.add(StartBlockToken.START_DECLARATION_OR_STATEMENT_BLOCK);
932937
tokens.add(NewLineToken.NEWLINE_1);
933938

934939
Iterator<String> iterator = packageInfo.getModuleInfoNames().iterator();
935940

936-
tokens.add(new TextToken(iterator.next()));
941+
String moduleInfoName = iterator.next();
942+
tokens.add(new ReferenceToken(ReferenceToken.MODULE, moduleInfoName.replace('.', '/'), moduleInfoName, null, null));
937943

938944
while (iterator.hasNext()) {
939945
tokens.add(TextToken.COMMA);
940946
tokens.add(NewLineToken.NEWLINE_1);
941-
tokens.add(new TextToken(iterator.next()));
947+
moduleInfoName = iterator.next();
948+
tokens.add(new ReferenceToken(ReferenceToken.MODULE, moduleInfoName.replace('.', '/'), moduleInfoName, null, null));
942949
}
943950

944951
tokens.add(EndBlockToken.END_DECLARATION_OR_STATEMENT_BLOCK);
@@ -951,36 +958,36 @@ protected void visitModuleDeclaration(ModuleDeclaration.PackageInfo packageInfo,
951958
protected void visitModuleDeclaration(String internalTypeName) {
952959
tokens.add(USES);
953960
tokens.add(TextToken.SPACE);
954-
tokens.add(new ReferenceToken(ReferenceToken.TYPE_FLAG, internalTypeName, internalTypeName.replace('/', '.'), null, null));
961+
tokens.add(new ReferenceToken(ReferenceToken.TYPE, internalTypeName, internalTypeName.replace('/', '.'), null, null));
955962
tokens.add(TextToken.SEMICOLON);
956963
}
957964

958965
protected void visitModuleDeclaration(ModuleDeclaration.ServiceInfo serviceInfo) {
959966
tokens.add(PROVIDES);
960967
tokens.add(TextToken.SPACE);
961968
String internalTypeName = serviceInfo.getInterfaceTypeName();
962-
tokens.add(new ReferenceToken(ReferenceToken.TYPE_FLAG, internalTypeName, internalTypeName.replace('/', '.'), null, null));
969+
tokens.add(new ReferenceToken(ReferenceToken.TYPE, internalTypeName, internalTypeName.replace('/', '.'), null, null));
963970
tokens.add(TextToken.SPACE);
964971
tokens.add(WITH);
965972

966973
if (serviceInfo.getImplementationTypeNames().size() == 1) {
967974
tokens.add(TextToken.SPACE);
968975
internalTypeName = serviceInfo.getImplementationTypeNames().get(0);
969-
tokens.add(new ReferenceToken(ReferenceToken.TYPE_FLAG, internalTypeName, internalTypeName.replace('/', '.'), null, null));
976+
tokens.add(new ReferenceToken(ReferenceToken.TYPE, internalTypeName, internalTypeName.replace('/', '.'), null, null));
970977
} else {
971978
tokens.add(StartBlockToken.START_DECLARATION_OR_STATEMENT_BLOCK);
972979
tokens.add(NewLineToken.NEWLINE_1);
973980

974981
Iterator<String> iterator = serviceInfo.getImplementationTypeNames().iterator();
975982

976983
internalTypeName = iterator.next();
977-
tokens.add(new ReferenceToken(ReferenceToken.TYPE_FLAG, internalTypeName, internalTypeName.replace('/', '.'), null, null));
984+
tokens.add(new ReferenceToken(ReferenceToken.TYPE, internalTypeName, internalTypeName.replace('/', '.'), null, null));
978985

979986
while (iterator.hasNext()) {
980987
tokens.add(TextToken.COMMA);
981988
tokens.add(NewLineToken.NEWLINE_1);
982989
internalTypeName = iterator.next();
983-
tokens.add(new ReferenceToken(ReferenceToken.TYPE_FLAG, internalTypeName, internalTypeName.replace('/', '.'), null, null));
990+
tokens.add(new ReferenceToken(ReferenceToken.TYPE, internalTypeName, internalTypeName.replace('/', '.'), null, null));
984991
}
985992

986993
tokens.add(EndBlockToken.END_DECLARATION_OR_STATEMENT_BLOCK);
@@ -1094,7 +1101,7 @@ public void visit(MethodDeclaration declaration) {
10941101
tokens.add(TextToken.SPACE);
10951102

10961103
// Build token for type declaration
1097-
tokens.add(new DeclarationToken(DeclarationToken.METHOD_FLAG, currentInternalTypeName, declaration.getName(), declaration.getDescriptor()));
1104+
tokens.add(new DeclarationToken(DeclarationToken.METHOD, currentInternalTypeName, declaration.getName(), declaration.getDescriptor()));
10981105

10991106
storeContext();
11001107
currentMethodParamNames.clear();
@@ -1246,7 +1253,7 @@ protected void buildFragmentsForTypeDeclaration(TypeDeclaration declaration, int
12461253
tokens.add(TextToken.SPACE);
12471254

12481255
// Build token for type declaration
1249-
tokens.add(new DeclarationToken(DeclarationToken.TYPE_FLAG, declaration.getInternalName(), declaration.getName(), null));
1256+
tokens.add(new DeclarationToken(DeclarationToken.TYPE, declaration.getInternalName(), declaration.getName(), null));
12501257
}
12511258

12521259
protected void buildFragmentsForClassOrInterfaceDeclaration(InterfaceDeclaration declaration, int flags, KeywordToken keyword) {

0 commit comments

Comments
 (0)