Skip to content

Commit 34e1f4f

Browse files
committed
added an option to skip declaration file creation
1 parent 995919e commit 34e1f4f

File tree

5 files changed

+37
-26
lines changed

5 files changed

+37
-26
lines changed

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ android-support-17:
5454
libs/android-support/27.0.1/android-support-core-utils.jar libs/android-support/27.0.1/android-support-animated-vector-drawable.jar \
5555
libs/android-support/27.0.1/android-support-vector-drawable.jar libs/android-support/27.0.1/android-support-compat.jar \
5656
libs/android-support/27.0.1/android-support-annotations.jar libs/android-support/27.0.1/android-support-multidex.jar \
57-
-all-generic-implements -input-generics libs/generics.txt -super /Users/trifonov/Library/Android/sdk/platforms/android-17/android.jar
57+
-input-generics libs/generics.txt -super /Users/trifonov/Library/Android/sdk/platforms/android-17/android.jar
5858
mv out/android.d.ts out/android-support-17.d.ts
5959

6060
android-support-23:
@@ -66,7 +66,7 @@ android-support-23:
6666
libs/android-support/27.0.1/android-support-core-utils.jar libs/android-support/27.0.1/android-support-animated-vector-drawable.jar \
6767
libs/android-support/27.0.1/android-support-vector-drawable.jar libs/android-support/27.0.1/android-support-compat.jar \
6868
libs/android-support/27.0.1/android-support-annotations.jar libs/android-support/27.0.1/android-support-multidex.jar \
69-
-all-generic-implements -input-generics libs/generics.txt -super /Users/trifonov/Library/Android/sdk/platforms/android-23/android.jar
69+
-input-generics libs/generics.txt -super /Users/trifonov/Library/Android/sdk/platforms/android-23/android.jar
7070
mv out/android.d.ts out/android-support-23.d.ts
7171

7272
android-support-26:
@@ -78,7 +78,7 @@ android-support-26:
7878
libs/android-support/27.0.1/android-support-core-utils.jar libs/android-support/27.0.1/android-support-animated-vector-drawable.jar \
7979
libs/android-support/27.0.1/android-support-vector-drawable.jar libs/android-support/27.0.1/android-support-compat.jar \
8080
libs/android-support/27.0.1/android-support-annotations.jar libs/android-support/27.0.1/android-support-multidex.jar \
81-
-all-generic-implements -input-generics libs/generics.txt -super /Users/trifonov/Library/Android/sdk/platforms/android-26/android.jar
81+
-input-generics libs/generics.txt -super /Users/trifonov/Library/Android/sdk/platforms/android-26/android.jar
8282
mv out/android.d.ts out/android-support-26.d.ts
8383

8484
android-support-all: android-support-17 android-support-23 android-support-26

dts-generator/src/main/java/com/telerik/InputParameters.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,14 @@ public class InputParameters {
1414
private List<File> superJars;
1515
private File inputGenerics;
1616
private boolean allGenericImplements;
17+
private boolean skipDeclarations;
1718

1819
public InputParameters() {
1920
this.outputDir = new File("out");
2021
this.inputJars = new ArrayList<>();
2122
this.superJars = new ArrayList<>();
2223
this.allGenericImplements = false;
24+
this.skipDeclarations = false;
2325
}
2426

2527
public File getOutputDir() {
@@ -50,6 +52,10 @@ public boolean isAllGenericImplementsEnabled() {
5052
return allGenericImplements;
5153
}
5254

55+
public void setSkipDeclarations(boolean skipDeclarations) { this.skipDeclarations = skipDeclarations; }
56+
57+
public boolean getSkipDeclarations() { return skipDeclarations; }
58+
5359
public void setAllGenericImplements(boolean allGenericImplements) {
5460
this.allGenericImplements = allGenericImplements;
5561
}

dts-generator/src/main/java/com/telerik/Main.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ public class Main {
1919
// whether to generate implements for all interfaces implemented by the generic types
2020
private static final String ALL_GENERIC_IMPLEMENTS = "-all-generic-implements";
2121

22+
// whether to skip the declarations file generation
23+
private static final String SKIP_DECLARATIONS = "-skip-declarations";
24+
2225
private static final String HELP = "-help";
2326

2427
public static void main(String[] args) throws Exception {
@@ -48,6 +51,10 @@ public static InputParameters parseCommand(String[] args) throws Exception {
4851
inputParameters.setAllGenericImplements(true);
4952
}
5053

54+
if (commandArg.equals(SKIP_DECLARATIONS)) {
55+
inputParameters.setSkipDeclarations(true);
56+
}
57+
5158
if (commandArg.equals(OUT_DIR)) {
5259
if (i != (args.length - 1)) {
5360
String nextParam = args[i + 1];
@@ -104,6 +111,7 @@ private static void printHelpMessage() {
104111
helpMessage.appendln("\t\t[-input-generics]:\tProvide a file with information for number of generic types per given generic class name.");
105112
helpMessage.appendln("\t\t[-all-generic-implements]:\tAdd this flag to generate implements for all interfaces implemented by the generic types." +
106113
" It is not enabled by default as when there are more than one implementation most probably one of them needs to be changed to extends, but this have to be made manually");
114+
helpMessage.appendln("\t\t[-skip-declarations]:\t\tProvide this flag if you don't want android-declarations.d.ts file to be generated and referenced.");
107115
helpMessage.appendln("\t\t[-help]:\t\tPrints this help message.");
108116

109117
System.out.println(helpMessage);

dts-generator/src/main/java/com/telerik/dts/DtsApi.java

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -287,30 +287,21 @@ private String getExtendsLine(JavaClass currClass, TypeDefinition typeDefinition
287287
ReferenceType parent = typeDefinition.getParent();
288288

289289
List<ReferenceType> interfaces = typeDefinition.getInterfaces();
290-
// if the object parent is java.lang.Object or any and it has exactly one interface
291-
// this means that this is actually a super class but not interface
292-
// if(interfaces.size() == 1 && parent != null
293-
// && (getTypeScriptTypeFromJavaType(parent, typeDefinition).equals("java.lang.Object")
294-
// || getTypeScriptTypeFromJavaType(parent, typeDefinition).equals("any"))) {
295-
// result.append(" extends ");
296-
// result.append(getTypeScriptTypeFromJavaType(interfaces.get(0), typeDefinition));
297-
// } else {
298-
if(parent != null) {
299-
result.append(" extends ");
300-
result.append(getTypeScriptTypeFromJavaType(parent, typeDefinition));
301-
}
302-
if(interfaces.size() == 1 || (this.allGenericImplements && interfaces.size() > 0)) {
303-
result.append(" implements ");
290+
if(parent != null) {
291+
result.append(" extends ");
292+
result.append(getTypeScriptTypeFromJavaType(parent, typeDefinition));
293+
}
294+
if(interfaces.size() == 1 || (this.allGenericImplements && interfaces.size() > 0)) {
295+
result.append(" implements ");
304296

305-
for (ReferenceType referenceType : interfaces) {
306-
String tsType = getTypeScriptTypeFromJavaType(referenceType, typeDefinition);
307-
if(!this.isPrimitiveTSType(tsType)) {
308-
result.append(tsType + ", ");
309-
}
297+
for (ReferenceType referenceType : interfaces) {
298+
String tsType = getTypeScriptTypeFromJavaType(referenceType, typeDefinition);
299+
if(!this.isPrimitiveTSType(tsType)) {
300+
result.append(tsType + ", ");
310301
}
311-
result.deleteCharAt(result.lastIndexOf(","));
312302
}
313-
//}
303+
result.deleteCharAt(result.lastIndexOf(","));
304+
}
314305
return result.toString();
315306
} else {
316307
JavaClass superClass = getSuperClass(currClass);

dts-generator/src/main/java/com/telerik/dts/Generator.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ public class Generator {
1919
private FileHelper fileHelper;
2020
private DtsApi dtsApi;
2121
private boolean allGenericImplements;
22+
private boolean skipDeclarations;
2223
private String outFileName;
2324
private String declarationsFileName;
2425

2526
public void start(InputParameters inputParameters) throws Exception {
2627
Generator.inputGenericsFile = inputParameters.getInputGenerics();
2728
this.allGenericImplements = inputParameters.isAllGenericImplementsEnabled();
29+
this.skipDeclarations = inputParameters.getSkipDeclarations();
2830
this.fileHelper = new FileHelper(inputParameters.getOutputDir());
2931
this.dtsApi = new DtsApi(allGenericImplements);
3032
this.outFileName = FileHelper.DEFAULT_DTS_FILE_NAME;
@@ -43,7 +45,9 @@ private void generateDts() throws Exception {
4345
DtsApi.loadGenerics(inputGenericsFile);
4446
}
4547

46-
this.fileHelper.writeToFile(String.format("/// <reference path=\"%s\"/>\n", this.declarationsFileName), this.outFileName, false);
48+
if(!this.skipDeclarations) {
49+
this.fileHelper.writeToFile(String.format("/// <reference path=\"%s\"/>\n", this.declarationsFileName), this.outFileName, false);
50+
}
4751

4852
while (ClassRepo.hasNext()) {
4953
List<JavaClass> classFiles = ClassRepo.getNextClassGroup();
@@ -65,7 +69,9 @@ private void generateDts() throws Exception {
6569
}
6670
}
6771

68-
this.writeDeclarations();
72+
if(!this.skipDeclarations) {
73+
this.writeDeclarations();
74+
}
6975
}
7076

7177
private void writeDeclarations() {

0 commit comments

Comments
 (0)