Skip to content

Commit 6b15ca7

Browse files
committed
added disable generate fields flag
1 parent 6cd91ba commit 6b15ca7

File tree

9 files changed

+55
-11
lines changed

9 files changed

+55
-11
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@
66
/jbbp-plugins/jbbp-gradle/.gradle/
77
/jbbp-plugins/jbbp-gradle/build/
88
/jbbp/BenchmarkList
9-
/jbbp/CompilerHints
9+
/jbbp/CompilerHints
10+
/jbbp/nb-configuration.xml

jbbp-plugins/jbbp-gradle/src/main/java/com/igormaznitsa/jbbp/plugin/gradle/JBBPExtension.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
* @since 1.3.0
1919
*/
2020
public class JBBPExtension {
21+
2122
/**
2223
* The Registered name of the extension.
2324
*/
@@ -29,12 +30,14 @@ public class JBBPExtension {
2930
public Target target = Target.JAVA_1_6;
3031

3132
/**
32-
* Flag to generate getters and setters in result class, all fields will be protected ones.
33+
* Flag to generate getters and setters in result class, all fields will be
34+
* protected ones.
3335
*/
3436
public boolean addGettersSetters = false;
3537

3638
/**
37-
* Make the result class as abstract one even if it doesn't have abstract methods.
39+
* Make the result class as abstract one even if it doesn't have abstract
40+
* methods.
3841
*/
3942
public boolean doAbstract = false;
4043

@@ -54,7 +57,8 @@ public class JBBPExtension {
5457
public Set<String> customTypes = new HashSet<String>();
5558

5659
/**
57-
* Interface names mapped to generated sub-classes, mapped interface will be used in getters instead of the sub-class type.
60+
* Interface names mapped to generated sub-classes, mapped interface will be
61+
* used in getters instead of the sub-class type.
5862
*/
5963
public Map<String, String> mapSubClassInterfaces = new HashMap<String, String>();
6064

@@ -74,7 +78,8 @@ public class JBBPExtension {
7478
public String headComment = null;
7579

7680
/**
77-
* Text file which content will be added into head of generated class as comments.
81+
* Text file which content will be added into head of generated class as
82+
* comments.
7883
*/
7984
public File headCommentFile = null;
8085

@@ -98,6 +103,13 @@ public class JBBPExtension {
98103
*/
99104
public String packageName = null;
100105

106+
/**
107+
* Disable generate fields for target class.
108+
*
109+
* @since 1.4.0
110+
*/
111+
public boolean disableGenerateFields = false;
112+
101113
/**
102114
* Output folder for result classes.
103115
*/

jbbp-plugins/jbbp-gradle/src/main/java/com/igormaznitsa/jbbp/plugin/gradle/JBBPGenerateTask.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ public JBBPAbstractField readCustomFieldType(@Nonnull final JBBPBitInputStream i
100100
.setClassImplements(ext.interfaces)
101101
.setSubClassInterfaces(ext.mapSubClassInterfaces)
102102
.setAddGettersSetters(ext.addGettersSetters)
103-
.setDoAbstract(ext.doAbstract);
103+
.setDoAbstract(ext.doAbstract)
104+
.setDisableGenerateFields(ext.disableGenerateFields);
104105

105106

106107
for (final File aScript : findScripts(ext)) {

jbbp-plugins/jbbp-maven/jbbp-maven-plugin/src/main/java/com/igormaznitsa/jbbp/plugin/mvn/JBBPGenerateMojo.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,11 @@ public class JBBPGenerateMojo extends AbstractJBBPMojo {
110110
*/
111111
@Parameter(alias = "customText")
112112
private String customText;
113+
/**
114+
* Disable generate fields in result class.
115+
*/
116+
@Parameter(alias = "disableGenerateFields",defaultValue = "false")
117+
private boolean disableGenerateFields;
113118
/**
114119
* Generate getters and setters for class fields (class fields will be private
115120
* ones).
@@ -193,6 +198,10 @@ public Set<ParserFlags> getParserFlags() {
193198
return this.parserFlags;
194199
}
195200

201+
public boolean isDisableGenerateFields() {
202+
return this.disableGenerateFields;
203+
}
204+
196205
@Nullable
197206
private String makeCapText(@Nonnull final String inEncoding) throws IOException {
198207
String result = null;
@@ -298,7 +307,8 @@ public JBBPAbstractField readCustomFieldType(@Nonnull final JBBPBitInputStream i
298307
.setClassImplements(this.interfaces)
299308
.setSubClassInterfaces(this.mapStructToInterfaces)
300309
.setAddGettersSetters(this.addGettersSetters)
301-
.setDoAbstract(this.doAbstract);
310+
.setDoAbstract(this.doAbstract)
311+
.setDisableGenerateFields(this.disableGenerateFields);
302312

303313
for (final File aScript : foundJBBPScripts) {
304314
parameters.setScriptFile(aScript).assertAllOk();

jbbp-plugins/jbbp-maven/jbbp-maven-plugin/src/test/java/com/igormaznitsa/jbbp/plugin/mvn/JBBPGenerateMojoTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public void testConfig() throws Exception {
8181
assertEquals("OUT-8", mojo.getOutputEncoding());
8282
assertEquals("com.igormaznitsa.Super", mojo.getSuperClass());
8383
assertEquals("SOME_TARGET", mojo.getTarget());
84+
assertTrue(mojo.isDisableGenerateFields());
8485
assertTrue(mojo.getDoAbstract());
8586
assertTrue(mojo.getAddGettersSetters());
8687
assertArrayEquals(new String[] {"abc", "def"}, set2array(mojo.getCustomTypes()));

jbbp-plugins/jbbp-maven/jbbp-maven-plugin/src/test/resources/com/igormaznitsa/jbbp/plugin/mvn/mojoConfig.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
<superClass>com.igormaznitsa.Super</superClass>
3636
<doAbstract>true</doAbstract>
3737
<target>SOME_TARGET</target>
38+
<disableGenerateFields>true</disableGenerateFields>
3839
<mapStructToInterfaces>
3940
<a.b.c>com.test.C</a.b.c>
4041
<a.b.d>com.test.D</a.b.d>

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ final class Parameters {
5656
*/
5757
@Nullable
5858
JBBPCustomFieldTypeProcessor customFieldTypeProcessor = null;
59+
/**
60+
* Disable generate class fields.
61+
* @since 1.4.0
62+
*/
63+
private boolean disableGenerateFields = false;
5964
/**
6065
* Flag to force abstract main class.
6166
*/
@@ -131,6 +136,16 @@ public Parameters setAddGettersSetters(final boolean value) {
131136
return this;
132137
}
133138

139+
public boolean isDisableGenerateFields() {
140+
return this.disableGenerateFields;
141+
}
142+
143+
@Nonnull
144+
public Parameters setDisableGenerateFields(final boolean value) {
145+
this.disableGenerateFields = value;
146+
return this;
147+
}
148+
134149
@Nonnull
135150
public Set<String> getClassImplements() {
136151
return Collections.unmodifiableSet(this.classImplements);

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

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public Set<File> translate(@Nonnull final JBBPScriptTranslator.Parameters parame
3636
final String[] implementsSorted = parameters.getClassImplements().toArray(new String[parameters.getClassImplements().size()]);
3737
Arrays.sort(implementsSorted);
3838

39-
final JBBPToJava6Converter converter = JBBPToJava6Converter.makeBuilder(parser)
39+
final JBBPToJava6Converter.Builder builder = JBBPToJava6Converter.makeBuilder(parser)
4040
.setMapSubClassesInterfaces(parameters.getSubClassInterfaces())
4141
.setMainClassName(className)
4242
.setHeadComment(parameters.getHeadComment())
@@ -46,9 +46,13 @@ public Set<File> translate(@Nonnull final JBBPScriptTranslator.Parameters parame
4646
.setDoMainClassAbstract(parameters.isDoAbstract())
4747
.setMainClassImplements(implementsSorted)
4848
.setParserFlags(parameters.getParserFlags())
49-
.setSuperClass(parameters.superClass).build();
49+
.setSuperClass(parameters.superClass);
5050

51-
FileUtils.write(resultJavaFile, converter.convert(), parameters.getEncodingOut());
51+
if (parameters.isDisableGenerateFields()) {
52+
builder.disableGenerateFields();
53+
}
54+
55+
FileUtils.write(resultJavaFile, builder.build().convert(), parameters.getEncodingOut());
5256
}
5357
return resultFiles;
5458
}

jbbp/src/test/java/com/igormaznitsa/jbbp/compiler/conversion/JBBPToJava6ConverterReadWriteTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ public static abstract class TestSuperclass {
7474
public void testReadWrite_ExtendsSuperClassAndUseItsFields() throws Exception {
7575
final JBBPParser parser = JBBPParser.prepare("stringj str; stringj [2] strarr; floatj flt; floatj [2] fltarr; doublej dbl; doublej [2] dblarr;");
7676
final String text = JBBPToJava6Converter.makeBuilder(parser).setMainClassName(CLASS_NAME).setMainClassPackage(PACKAGE_NAME).disableGenerateFields().setSuperClass(TestSuperclass.class.getCanonicalName()).setAddGettersSetters(true).build().convert();
77-
System.out.println(text);
7877
final String fullClassName = PACKAGE_NAME + '.' + CLASS_NAME;
7978
final ClassLoader classLoader = saveAndCompile(new JavaClassContent(fullClassName, text));
8079

0 commit comments

Comments
 (0)