Skip to content

Commit

Permalink
fix bug
Browse files Browse the repository at this point in the history
  • Loading branch information
zzz40500 committed Aug 25, 2015
1 parent 93eb3b7 commit c7770e7
Show file tree
Hide file tree
Showing 13 changed files with 147 additions and 54 deletions.
Binary file added GsonFormat1.2.0.jar
Binary file not shown.
Binary file removed GsonFormat1.2.jar
Binary file not shown.
4 changes: 4 additions & 0 deletions META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
<name>GsonFormat</name>
<description><![CDATA[
<html>quickly to convert a JSON string to an InnerClassEntity class ..<br>
<br>
● Support Data Conversion Library(eg:Gson,Jack,FastJson)<br>
● Added Virgo mode.<br>
● Support Field name Custom.<br>
<a href="https://github.com/zzz40500/GsonFormat"> openSource</a>
</html>
]]>
Expand Down
Binary file added Screenshot/1.2.0.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 38 additions & 10 deletions src/ConvertBridge.java
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,8 @@ public void run() {
json = new JSONObject(jsonStr);
} catch (Exception e) {
String jsonTS = filterAnnotation(jsonStr);

jsonTS=jsonTS.replaceAll("^[\\s\\S]*?\\{","{");
try {
json = new JSONObject(jsonTS);
} catch (Exception e2) {
Expand Down Expand Up @@ -140,6 +142,15 @@ public void run() {
mFilterClass = null;
}


public static void main(String[] args) {

String s="";
s=s.replaceAll("^[\\s\\S]*?\\{","{");

System.out.print(s);
}

private void initFilterClass() {


Expand All @@ -152,6 +163,7 @@ private void initFilterClass() {

InnerClassEntity innerClassEntity1 = new InnerClassEntity();
innerClassEntity1.setClassName(psiClass.getName());
innerClassEntity1.setAutoCreateClassName(psiClass.getName());
innerClassEntity1.setFields(initFilterField(psiClass));
innerClassEntity1.setPsiClass(psiClass);
recursionInnerClass(innerClassEntity1);
Expand All @@ -168,6 +180,7 @@ private void recursionInnerClass(InnerClassEntity innerClassEntity) {
for (PsiClass psiClass : innerClasss) {
InnerClassEntity innerClassEntity1 = new InnerClassEntity();
innerClassEntity1.setClassName(psiClass.getName());
innerClassEntity1.setAutoCreateClassName(psiClass.getName());
innerClassEntity1.setFields(initFilterField(psiClass));
innerClassEntity1.setPsiClass(psiClass);
recursionInnerClass(innerClassEntity1);
Expand Down Expand Up @@ -280,6 +293,7 @@ public void parseJson(JSONObject json) {

if(Config.getInstant().isVirgoMode()){
mGenerateEntity.setClassName("");
mGenerateEntity.setAutoCreateClassName("");
mGenerateEntity.setPsiClass(mGeneratClass);
mGenerateEntity.setFields(createFields(json, fieldList, mGenerateEntity));
FieldsDialog fieldsDialog=new FieldsDialog(mJsonUtilsDialog,mGenerateEntity,mFactory,
Expand Down Expand Up @@ -399,12 +413,10 @@ private FieldEntity createFiled(InnerClassEntity parentClass,String key, Object



FieldEntity fieldEntity = typeByValue(parentClass, filedName, type);
FieldEntity fieldEntity = typeByValue(parentClass, key, type);
fieldEntity.setFieldName(filedName);
fieldEntity.setKey(key);
if(type!=null && !(fieldEntity instanceof InnerClassEntity)) {
fieldEntity.setValue(type.toString());
}
fieldEntity.setAutoCreateFiledName(filedName);


return fieldEntity;

Expand All @@ -422,7 +434,7 @@ private FieldEntity typeByValue(InnerClassEntity parentClass, String key, Object

InnerClassEntity classEntity = checkInnerClass((JSONObject) type);
if (classEntity == null) {
typeStr = createClassSubName( key, type, parentClass) ;
typeStr = createSubClassName(key, type, parentClass) ;
InnerClassEntity innerClassEntity= createJSonObjectClassSub(typeStr, (JSONObject) type, parentClass);
innerClassEntity.setKey(key);
innerClassEntity.setType("%s");
Expand Down Expand Up @@ -465,8 +477,14 @@ private FieldEntity typeByValue(InnerClassEntity parentClass, String key, Object

fieldEntity.setType(typeStr);
noteBean=fieldEntity;
if(type!=null && !(noteBean instanceof InnerClassEntity)) {
noteBean.setValue(type.toString());
}

}

noteBean.setKey(key);

return noteBean;
}

Expand All @@ -485,7 +503,9 @@ private InnerClassEntity checkInnerClass(JSONObject jsonObject) {
had=true;
break;
}

}
if(!had){
break;
}

}
Expand All @@ -500,12 +520,13 @@ private InnerClassEntity checkInnerClass(JSONObject jsonObject) {
private InnerClassEntity createJSonObjectClassSub(String className, JSONObject json, InnerClassEntity parentClass) {

InnerClassEntity subClassEntity=new InnerClassEntity();
subClassEntity.setClassName(className);

Set<String> set = json.keySet();
List<String> list = new ArrayList<String>(set);
List<FieldEntity> fields = createFields(json, list, subClassEntity);
subClassEntity.setFields(fields);
subClassEntity.setClassName(className);
subClassEntity.setAutoCreateClassName(className);
if (Config.getInstant().isReuseEntity()) {
mFilterClass.add(subClassEntity);
}
Expand All @@ -514,7 +535,7 @@ private InnerClassEntity createJSonObjectClassSub(String className, JSONObject j

}

private String createClassSubName( String key, Object o, InnerClassEntity parentClass) {
private String createSubClassName(String key, Object o, InnerClassEntity parentClass) {

String name = "";
if(o instanceof JSONObject){
Expand Down Expand Up @@ -555,7 +576,8 @@ private FieldEntity listTypeByValue(InnerClassEntity parentClass, String key, Ob
InnerClassEntity innerClassEntity= createJSonObjectClassSub(typeStr, (JSONObject) type, parentClass);
innerClassEntity.setType(typeStr);
innerClassEntity.setKey(key);
innerClassEntity.setClassName(createClassSubName(key, type, parentClass));
innerClassEntity.setClassName(createSubClassName(key, type, parentClass));
innerClassEntity.setAutoCreateClassName(innerClassEntity.getClassName());
noteBean=innerClassEntity;
} else {

Expand Down Expand Up @@ -614,6 +636,12 @@ public String captureStringLeaveUnderscore(String str) {
if (TextUtils.isEmpty(str)) {
return str;
}
String temp = str.replaceAll("^_+", "");

if( !TextUtils.isEmpty(temp)){
str=temp;
}

String[] strings = str.split("_");
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(strings[0]);
Expand Down
4 changes: 2 additions & 2 deletions src/SettingDialog.form
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
<grid row="15" column="0" row-span="1" col-span="10" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="filed( public) "/>
<text value="filed( public ) "/>
</properties>
</component>
<component id="afbc9" class="javax.swing.JRadioButton" binding="fieldPrivateRadioButton">
Expand Down Expand Up @@ -315,7 +315,7 @@
</grid>
</constraints>
<properties>
<text value="name prefix"/>
<text value="name prefix :"/>
</properties>
</component>
<component id="fa434" class="javax.swing.JLabel">
Expand Down
4 changes: 2 additions & 2 deletions src/SettingDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -144,11 +144,11 @@ public void actionPerformed(ActionEvent actionEvent) {

String filedPrefix=null;
filedPrefix=Config.getInstant().getFiledNamePreFixStr();
// if(TextUtils.isEmpty(filedPrefix)){
if(TextUtils.isEmpty(filedPrefix)){
JavaCodeStyleManager styleManager = JavaCodeStyleManager.getInstance(project);
filedPrefix=styleManager.getPrefixByVariableKind(VariableKind.FIELD
);
// }
}
filedPrefixTF.setText(filedPrefix);


Expand Down
6 changes: 3 additions & 3 deletions src/config/Config.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public class Config {


/**
* 处女座模�
* 处女座模�?
*/
private boolean virgoMode=true;

Expand All @@ -43,7 +43,7 @@ public class Config {
private String entityPackName;

/**
* 错误次数,前两次提醒哪里查看错误日�.
* 错误次数,前两次提醒哪里查看错误日�?.
*/
private int errorCount;

Expand Down Expand Up @@ -295,7 +295,7 @@ public void saveArrayFromData1Str(String arrayFromData1Str) {

public boolean isToastError() {

if( Config.getInstant().getErrorCount()>3){
if( Config.getInstant().getErrorCount()<3){
Config.getInstant().setErrorCount(Config.getInstant().getErrorCount() + 1);
Config.getInstant().save();
return true;
Expand Down
8 changes: 4 additions & 4 deletions src/config/Strings.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ public class Strings {

public static final String gsonAnnotation="@com.google.gson.annotations.SerializedName\\s*\\(\\s*\"{filed}\"\\s*\\)";
public static final String gsonFullNameAnnotation="@com.google.gson.annotations.SerializedName(\"{filed}\")";
public static final String fastFullNameAnnotation="@com.alibaba.fastjson.annotation.JSONField(\"{filed}\")";
public static final String fastAnnotation="@com.alibaba.fastjson.annotation.JSONField\\s*\\(\\s*\"{filed}\"\\s*\\)";
public static final String jackAnnotation="@com.fasterxml.jackson.annotation.JsonProperty\\s*\\(\\s*name\\s*=\\s*\"{filed}\"\\s*\\)";
public static final String jackFullNameAnnotation="@com.fasterxml.jackson.annotation.JsonProperty(name=\"{filed}\")";
public static final String fastFullNameAnnotation="@com.alibaba.fastjson.annotation.JSONField(name=\"{filed}\")";
public static final String fastAnnotation="@com.alibaba.fastjson.annotation.JSONField\\s*\\(\\s*name\\s*=\\s*\"{filed}\"\\s*\\)";
public static final String jackAnnotation="@com.fasterxml.jackson.annotation.JsonProperty\\s*\\(\\s*\"{filed}\"\\s*\\)";
public static final String jackFullNameAnnotation="@com.fasterxml.jackson.annotation.JsonProperty(\"{filed}\")";
}
39 changes: 29 additions & 10 deletions src/entity/FieldEntity.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ public class FieldEntity {
private String value;
private String extra;

private String autoCreateFiledName;

public String getAutoCreateFiledName() {
return autoCreateFiledName;
}

public void setAutoCreateFiledName(String autoCreateFiledName) {
this.autoCreateFiledName = autoCreateFiledName;
}

private InnerClassEntity targetClass;


Expand Down Expand Up @@ -47,6 +57,9 @@ public String getFieldName() {
}

public void setFieldName(String fieldName) {
if(TextUtils.isEmpty(fieldName)){
return;
}
this.fieldName = fieldName;
}

Expand Down Expand Up @@ -90,16 +103,22 @@ public void checkAndSetType(String s) {



if(targetClass == null){

}else{
String regex = getType().replaceAll("%s", "(\\w+)").replaceAll(".", "\\.");
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(s);
if (matcher.find()&&matcher.groupCount()>0) {
targetClass.setClassName(matcher.group(1));
}
}
// if(targetClass == null){
//
// }else{
// String regex = getType().replaceAll("%s", "(\\w+)").replaceAll(".", "\\.");
// Pattern pattern = Pattern.compile(regex);
// Matcher matcher = pattern.matcher(s);
// if (matcher.find()&&matcher.groupCount()>0) {
//
// String temp=matcher.group(1);
// if(TextUtils.isEmpty(temp)){
// targetClass.setClassName(targetClass.getAutoCreateClassName());
// }else{
// targetClass.setClassName(temp);
// }
// }
// }
}

public String getKey() {
Expand Down
Loading

0 comments on commit c7770e7

Please sign in to comment.