Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions src/main/java/com/foxsteps/gsonformat/config/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public class Config {
private static Config config;

private boolean fieldPrivateMode = true;
private boolean onlyGetterMode = false;
private boolean generateComments = false;
private boolean useSerializedName = false;
private boolean objectFromData = false;
Expand Down Expand Up @@ -75,6 +76,7 @@ private Config() {

public void save() {

PropertiesComponent.getInstance().setValue("fieldOnlyGetterMode", isOnlyGetterMode() + "");
PropertiesComponent.getInstance().setValue("fieldPrivateMode", isFieldPrivateMode() + "");
PropertiesComponent.getInstance().setValue("useSerializedName", isUseSerializedName() + "");
PropertiesComponent.getInstance().setValue("objectFromData", objectFromData + "");
Expand Down Expand Up @@ -104,6 +106,7 @@ public static Config getInstant() {

if (config == null) {
config = new Config();
config.setOnlyGetterMode(PropertiesComponent.getInstance().getBoolean("fieldOnlyGetterMode", false));
config.setFieldPrivateMode(PropertiesComponent.getInstance().getBoolean("fieldPrivateMode", true));
config.setUseSerializedName(PropertiesComponent.getInstance().getBoolean("useSerializedName", true));
config.setObjectFromData(PropertiesComponent.getInstance().getBoolean("objectFromData", false));
Expand Down Expand Up @@ -301,6 +304,13 @@ public void setFieldPrivateMode(boolean fieldPrivateMode) {
this.fieldPrivateMode = fieldPrivateMode;
}

public boolean isOnlyGetterMode() {
return onlyGetterMode;
}

public void setOnlyGetterMode(boolean onlyGetterMode) {
this.onlyGetterMode = onlyGetterMode;
}

public void saveObjectFromDataStr(String objectFromDataStr) {
this.objectFromDataStr = objectFromDataStr;
Expand Down
19 changes: 17 additions & 2 deletions src/main/java/com/foxsteps/gsonformat/process/Processor.java
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,11 @@ protected void generateGetterAndSetter(PsiElementFactory factory, PsiClass cls,
}
if (Config.getInstant().isFieldPrivateMode()) {
for (FieldEntity field : classEntity.getFields()) {
createGetAndSetMethod(factory, cls, field);
if (Config.getInstant().isOnlyGetterMode()) {
createGetMethod(factory, cls, field);
} else {
createGetAndSetMethod(factory, cls, field);
}
}
}
}
Expand All @@ -131,7 +135,7 @@ public void error() {
});
}

protected void createGetAndSetMethod(PsiElementFactory factory, PsiClass cls, FieldEntity field) {
protected void createGetMethod(PsiElementFactory factory, PsiClass cls, FieldEntity field) {
if (field.isGenerate()) {
String fieldName = field.getGenerateFieldName();
String typeStr = field.getRealType();
Expand All @@ -153,7 +157,13 @@ protected void createGetAndSetMethod(PsiElementFactory factory, PsiClass cls, Fi
field.getGenerateFieldName()).concat(" ;} ");
cls.add(factory.createMethodFromText(method, cls));
}
}
}

protected void createSetMethod(PsiElementFactory factory, PsiClass cls, FieldEntity field) {
if (field.isGenerate()) {
String fieldName = field.getGenerateFieldName();
String typeStr = field.getRealType();
String arg = fieldName;
if (Config.getInstant().isUseFieldNamePrefix()) {
String temp = fieldName.replaceAll("^" + Config.getInstant().getFiledNamePreFixStr(), "");
Expand Down Expand Up @@ -200,6 +210,11 @@ public void error() {
}
}

protected void createGetAndSetMethod(PsiElementFactory factory, PsiClass cls, FieldEntity field) {
createGetMethod(factory, cls, field);
createSetMethod(factory, cls, field);
}

protected void generateClass(PsiElementFactory factory, ClassEntity classEntity, PsiClass parentClass, IProcessor visitor) {

onStartGenerateClass(factory, classEntity, parentClass, visitor);
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/com/foxsteps/gsonformat/ui/SettingDialog.form
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,14 @@
<text value="split generate"/>
</properties>
</component>
<component id="92c5f" class="javax.swing.JCheckBox" binding="onlyGetterCheckBox" default-binding="true">
<constraints>
<grid row="15" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="only getter"/>
</properties>
</component>
</children>
</grid>
</children>
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/com/foxsteps/gsonformat/ui/SettingDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public class SettingDialog extends JFrame {

private JRadioButton fieldPublicRadioButton;
private JRadioButton fieldPrivateRadioButton;
private JCheckBox onlyGetterCheckBox;
private JCheckBox useSerializedNameCB;
private JCheckBox useLombokCB;
private JCheckBox useNumberKeyAsMapCB;
Expand Down Expand Up @@ -94,9 +95,15 @@ public void actionPerformed(ActionEvent e) {
//字段私有模型
if (Config.getInstant().isFieldPrivateMode()) {
fieldPrivateRadioButton.setSelected(true);
onlyGetterCheckBox.setEnabled(true);
} else {
fieldPublicRadioButton.setSelected(true);
onlyGetterCheckBox.setEnabled(false);
}
onlyGetterCheckBox.setSelected(Config.getInstant().isOnlyGetterMode());
fieldPrivateRadioButton.addChangeListener(e -> {
onlyGetterCheckBox.setEnabled(fieldPrivateRadioButton.isSelected());
});
//处女模式CheckBox
virgoModelCB.setSelected(Config.getInstant().isVirgoMode());
//生成注释
Expand Down Expand Up @@ -367,6 +374,7 @@ public void actionPerformed(ActionEvent actionEvent) {

private void onOK() {

Config.getInstant().setOnlyGetterMode(onlyGetterCheckBox.isSelected());
Config.getInstant().setFieldPrivateMode(fieldPrivateRadioButton.isSelected());
Config.getInstant().setUseSerializedName(useSerializedNameCB.isSelected());
Config.getInstant().setArrayFromData(arrayFromDataCB.isSelected());
Expand Down