Skip to content

Commit 07e4d4a

Browse files
committed
Optional added
1 parent 08b235f commit 07e4d4a

13 files changed

+154
-162
lines changed

src/com/mighty16/json/annotations/FastJsonAnnotation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ public String getSerializeName(String jsonKey) {
1111

1212
@Override
1313
public String getImportString() {
14-
return "com.alibaba.fastjson.JSON";
14+
return "import com.alibaba.fastjson.JSON";
1515
}
1616
}

src/com/mighty16/json/annotations/GsonAnnotations.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ public String getSerializeName(String jsonKey) {
1111

1212
@Override
1313
public String getImportString() {
14-
return "com.google.gson.annotations.SerializedName";
14+
return "import com.google.gson.annotations.SerializedName";
1515
}
1616
}

src/com/mighty16/json/annotations/JacksonAnnotations.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ public String getSerializeName(String jsonKey) {
99

1010
@Override
1111
public String getImportString() {
12-
return "com.fasterxml.jackson.annotation.JsonProperty";
12+
return "import com.fasterxml.jackson.annotation.JsonProperty";
1313
}
1414
}

src/com/mighty16/json/annotations/MoshiAnnotations.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ public String getSerializeName(String jsonKey) {
1111

1212
@Override
1313
public String getImportString() {
14-
return "com.squareup.moshi.Json";
14+
return "import com.squareup.moshi.Json";
1515
}
1616
}

src/com/mighty16/json/generator/MultipleFilesGenerator.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.mighty16.json.generator;
22

3-
4-
import com.intellij.openapi.command.WriteCommandAction;
53
import com.intellij.openapi.project.Project;
6-
import com.intellij.openapi.wm.StatusBar;
74
import com.intellij.psi.*;
85
import com.intellij.psi.impl.file.PsiDirectoryFactory;
96
import com.mighty16.json.annotations.AnnotationGenerator;
@@ -31,7 +28,7 @@ public void generateFiles(PsiDirectory directory, List<ClassModel> classDataList
3128

3229
builder.append(String.format(PACKAGE_BLOCK, classData.packageName));
3330
if (annotations != null) {
34-
builder.append("import " + annotations.getImportString() + "\n\n");
31+
builder.append(annotations.getImportString() + "\n\n");
3532
}
3633

3734
String sourceText = builder.toString() + generateFileContentForClass(classData);

src/com/mighty16/json/generator/SingleFileGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public void generateFiles(PsiDirectory directory, List<ClassModel> classDataList
3434
int initialLength = resultFileContent.length();
3535

3636
if (annotations != null) {
37-
resultFileContent.insert(initialLength, "\n" + "import " + annotations.getImportString() + "\n\n");
37+
resultFileContent.insert(initialLength, "\n" + annotations.getImportString() + "\n\n");
3838
}
3939

4040
for (ClassModel classData : classDataList) {

src/com/mighty16/json/generator/SourceFilesGenerator.java

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,12 @@ public String generateFileContentForClass(ClassModel classData) {
5454
builder.append(annotations.getSerializeName(field.jsonName)).append("\n" + gapString);
5555
}
5656

57-
String type;
58-
if (!TextUtils.isEmpty(field.defaultValue)) {
59-
type = field.type + " = " + field.defaultValue;
60-
} else {
61-
type = field.type;
62-
}
57+
String typeAndValue = resolver.getFieldTypeAndValue(field);
6358

6459
builder.append(resolver.getModifier(field.mutable) + " ")
6560
.append(field.name)
6661
.append(": ")
67-
.append(type);
62+
.append(typeAndValue);
6863
if (i < size - 1) {
6964
builder.append(",\n" + gapString);
7065
}
@@ -74,30 +69,6 @@ public String generateFileContentForClass(ClassModel classData) {
7469
return builder.toString();
7570
}
7671

77-
public PsiDirectory createDirectory(PsiDirectory parent, String name) throws IncorrectOperationException {
78-
PsiDirectory result = null;
79-
for (PsiDirectory dir : parent.getSubdirectories()) {
80-
if (dir.getName().equalsIgnoreCase(name)) {
81-
result = dir;
82-
break;
83-
}
84-
}
85-
if (null == result) {
86-
result = parent.createSubdirectory(name);
87-
}
88-
return result;
89-
}
90-
91-
public PsiDirectory createPackage(PsiDirectory sourceDir, String qualifiedPackage) throws IncorrectOperationException {
92-
PsiDirectory parent = sourceDir;
93-
StringTokenizer token = new StringTokenizer(qualifiedPackage, ".");
94-
while (token.hasMoreTokens()) {
95-
String dirName = token.nextToken();
96-
parent = createDirectory(parent, dirName);
97-
}
98-
return parent;
99-
}
100-
10172
private String getGapString(int count) {
10273
StringBuilder builder = new StringBuilder();
10374
for (int i = 0; i < count; i++) {
@@ -138,4 +109,4 @@ public interface Listener {
138109
void onFilesGenerated(int filesCount);
139110
}
140111

141-
}
112+
}

src/com/mighty16/json/models/FieldModel.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ public class FieldModel {
55
public String jsonName;
66
public String name;
77
public String type;
8+
public boolean optional;
89
public String originalValue;
910
public boolean enabled;
1011
public boolean mutable;
@@ -16,5 +17,8 @@ public FieldModel(String jsonName, String name, String type, String originalValu
1617
this.type = type;
1718
this.originalValue = originalValue;
1819
this.enabled = true;
20+
this.optional = false;
1921
}
22+
23+
2024
}

src/com/mighty16/json/resolver/KotlinResolver.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mighty16.json.resolver;
22

33
import com.intellij.openapi.fileTypes.FileType;
4+
import com.mighty16.json.models.FieldModel;
45
import org.apache.commons.lang.StringUtils;
56

67
import java.util.HashMap;
@@ -78,6 +79,12 @@ public String getModifier(boolean mutable) {
7879
return mutable ? "var" : "val";
7980
}
8081

82+
@Override
83+
public String getFieldTypeAndValue(FieldModel field) {
84+
String type = field.optional ? field.type + "?" : field.type;
85+
return field.defaultValue != null ? type + " = " + field.defaultValue : type;
86+
}
87+
8188
@Override
8289
public boolean isModifierMutable(String modifier) {
8390
return modifier.equals("var");

src/com/mighty16/json/resolver/LanguageResolver.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.mighty16.json.resolver;
22

33
import com.intellij.openapi.fileTypes.FileType;
4+
import com.mighty16.json.models.FieldModel;
45

56
public abstract class LanguageResolver {
67

@@ -22,6 +23,8 @@ public abstract class LanguageResolver {
2223

2324
public abstract String getModifier(boolean mutable);
2425

26+
public abstract String getFieldTypeAndValue(FieldModel field);
27+
2528
public abstract boolean isModifierMutable(String modifier);
2629

2730
public abstract String getFileName(String className);

0 commit comments

Comments
 (0)