Skip to content

Commit f199f48

Browse files
committed
refactoring
1 parent d4622bd commit f199f48

File tree

3 files changed

+106
-12
lines changed

3 files changed

+106
-12
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.igormaznitsa.jbbp.plugin.common.converters;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertFalse;
5+
import static org.junit.jupiter.api.Assertions.assertTrue;
6+
7+
8+
import java.io.File;
9+
import org.junit.jupiter.api.Test;
10+
11+
class JavaConverterTest {
12+
13+
@Test
14+
void testTranslateParameters() {
15+
final JBBPScriptTranslator.Parameters parameters = new JBBPScriptTranslator.Parameters();
16+
17+
assertTrue(parameters.setAddNewInstanceMethods(true).isAddNewInstanceMethods());
18+
assertFalse(parameters.setAddNewInstanceMethods(false).isAddNewInstanceMethods());
19+
20+
assertTrue(parameters.setAddBinAnnotations(true).isAddBinAnnotations());
21+
assertFalse(parameters.setAddBinAnnotations(false).isAddBinAnnotations());
22+
23+
assertTrue(parameters.setAddGettersSetters(true).isAddGettersSetters());
24+
assertFalse(parameters.setAddGettersSetters(false).isAddGettersSetters());
25+
26+
assertTrue(parameters.setDisableGenerateFields(true).isDisableGenerateFields());
27+
assertFalse(parameters.setDisableGenerateFields(false).isDisableGenerateFields());
28+
29+
assertTrue(parameters.setDoAbstract(true).isDoAbstract());
30+
assertFalse(parameters.setDoAbstract(false).isDoAbstract());
31+
32+
assertTrue(parameters.setDoInternalClassesNonStatic(true).isDoInternalClassesNonStatic());
33+
assertFalse(parameters.setDoInternalClassesNonStatic(false).isDoInternalClassesNonStatic());
34+
35+
assertEquals(new File("some_test"), parameters.setOutputDir(new File("some_test")).getOutputDir());
36+
assertEquals(new File("some_test.script"), parameters.setScriptFile(new File("some_test.script")).getScriptFile());
37+
assertEquals("some.test.package", parameters.setPackageName("some.test.package").getPackageName());
38+
assertEquals("bit a;", parameters.setScriptText("bit a;").getScriptText());
39+
assertEquals("SomeSuperClass", parameters.setSuperClass("SomeSuperClass").getSuperClass());
40+
assertEquals(1234, parameters.setParserFlags(1234).getParserFlags());
41+
assertEquals("UTF-8", parameters.setEncodingIn("UTF-8").getEncodingIn());
42+
assertEquals("UTF-8", parameters.setEncodingOut("UTF-8").getEncodingOut());
43+
44+
parameters.setScriptFile(null);
45+
}
46+
47+
}

jbbp-plugins/jbbp-plugin-common/src/main/java/com/igormaznitsa/jbbp/plugin/common/converters/JBBPScriptTranslator.java

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public interface JBBPScriptTranslator {
3434
*
3535
* @since 1.3.0
3636
*/
37-
final class Parameters {
37+
public final class Parameters {
3838
/**
3939
* Map of interface names to be implemented by subclasses.
4040
*/
@@ -63,7 +63,16 @@ final class Parameters {
6363
* Super class for main class.
6464
*/
6565
@Nullable
66-
protected String superClass = null;
66+
private String superClass = null;
67+
68+
/**
69+
* Destination file name.
70+
*
71+
* @since 2.0.0
72+
*/
73+
@Nullable
74+
private String destFileName = null;
75+
6776
/**
6877
* Processor for custom types.
6978
*/
@@ -88,6 +97,12 @@ final class Parameters {
8897
*/
8998
@Nullable
9099
private File scriptFile = null;
100+
/**
101+
* Script text, it will be used only if {@link #scriptFile} is null
102+
*
103+
* @since 2.0.0
104+
*/
105+
private String scriptText = null;
91106
/**
92107
* Package name for main class.
93108
*/
@@ -162,6 +177,17 @@ public Parameters setAddGettersSetters(final boolean value) {
162177
return this;
163178
}
164179

180+
@Nullable
181+
public String getDestFileName() {
182+
return this.destFileName;
183+
}
184+
185+
@Nonnull
186+
public Parameters setDestFileName(@Nullable final String name) {
187+
this.destFileName = name;
188+
return this;
189+
}
190+
165191
public boolean isDisableGenerateFields() {
166192
return this.disableGenerateFields;
167193
}
@@ -269,14 +295,25 @@ public Parameters setOutputDir(@Nullable final File dir) {
269295
return this;
270296
}
271297

272-
@Nonnull
298+
@Nullable
273299
public File getScriptFile() {
274-
return Assertions.assertNotNull(this.scriptFile);
300+
return this.scriptFile;
301+
}
302+
303+
@Nonnull
304+
public Parameters setScriptFile(@Nullable final File file) {
305+
this.scriptFile = file;
306+
return this;
307+
}
308+
309+
@Nullable
310+
public String getScriptText() {
311+
return this.scriptText;
275312
}
276313

277314
@Nonnull
278-
public Parameters setScriptFile(@Nonnull final File file) {
279-
this.scriptFile = Assertions.assertNotNull(file);
315+
public Parameters setScriptText(@Nonnull final String text) {
316+
this.scriptText = Assertions.assertNotNull(text);
280317
return this;
281318
}
282319

@@ -343,5 +380,9 @@ public Parameters assertAllOk() {
343380
return this;
344381
}
345382

383+
@Nullable
384+
public String getSuperClass() {
385+
return this.superClass;
386+
}
346387
}
347388
}

jbbp-plugins/jbbp-plugin-common/src/main/java/com/igormaznitsa/jbbp/plugin/common/converters/JavaConverter.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,16 @@ public class JavaConverter implements JBBPScriptTranslator {
2121
@Override
2222
@Nonnull
2323
public Set<File> translate(@Nonnull final Parameters parameters, final boolean dryRun) throws IOException {
24-
final File scriptToProcess = Assertions.assertNotNull(parameters.getScriptFile());
25-
26-
final String text = FileUtils.readFileToString(scriptToProcess, parameters.getEncodingIn());
27-
final String rawFileName = FilenameUtils.getBaseName(scriptToProcess.getName());
24+
final String text;
25+
final String rawFileName;
26+
if (parameters.getScriptFile() == null) {
27+
rawFileName = parameters.getDestFileName() == null ? "JbbpNoName" : parameters.getDestFileName();
28+
text = Assertions.assertNotNull("Script file is null, expected script text", parameters.getScriptText());
29+
} else {
30+
final File scriptToProcess = parameters.getScriptFile();
31+
rawFileName = FilenameUtils.getBaseName(scriptToProcess.getName());
32+
text = FileUtils.readFileToString(scriptToProcess, parameters.getEncodingIn());
33+
}
2834
final String className = CommonUtils.extractClassName(rawFileName);
2935
final String packageName = parameters.getPackageName() == null ? CommonUtils.extractPackageName(rawFileName) : parameters.getPackageName();
3036

@@ -49,7 +55,7 @@ public Set<File> translate(@Nonnull final Parameters parameters, final boolean d
4955
.setDoMainClassAbstract(parameters.isDoAbstract())
5056
.setMainClassImplements(implementsSorted)
5157
.setParserFlags(parameters.getParserFlags())
52-
.setSuperClass(parameters.superClass);
58+
.setSuperClass(parameters.getSuperClass());
5359

5460
if (parameters.isAddBinAnnotations()) {
5561
builder.addBinAnnotations();
@@ -66,7 +72,7 @@ public Set<File> translate(@Nonnull final Parameters parameters, final boolean d
6672
if (parameters.isDisableGenerateFields()) {
6773
builder.disableGenerateFields();
6874
}
69-
75+
7076
FileUtils.write(resultJavaFile, builder.build().convert(), parameters.getEncodingOut());
7177
}
7278
return resultFiles;

0 commit comments

Comments
 (0)