package org.gsonformat.intellij.config; import com.intellij.ide.util.PropertiesComponent; /** * Created by dim on 15/5/31. */ public class Config { private static Config config; private boolean fieldPrivateMode = true; private boolean generateComments = true; private boolean useSerializedName = false; private boolean objectFromData = false; private boolean objectFromData1 = false; private boolean arrayFromData = false; private boolean arrayFromData1 = false; private boolean reuseEntity = false; private boolean virgoMode = true; //处女座模式 private boolean useFieldNamePrefix = false; private boolean splitGenerate = false; private String objectFromDataStr; private String objectFromDataStr1; private String arrayFromDataStr; private String arrayFromData1Str; private String annotationStr; //注解语句 private String filedNamePreFixStr; //字段前缀 private String entityPackName;//创建实体类的包名. private String suffixStr; /** * 错误次数,前两次提醒哪里查看错误日志. */ private int errorCount; private Config() { } public void save() { PropertiesComponent.getInstance().setValue("fieldPrivateMode", "" + isFieldPrivateMode()); PropertiesComponent.getInstance().setValue("useSerializedName", isUseSerializedName() + ""); PropertiesComponent.getInstance().setValue("objectFromData", objectFromData + ""); PropertiesComponent.getInstance().setValue("objectFromData1", objectFromData1 + ""); PropertiesComponent.getInstance().setValue("arrayFromData", arrayFromData + ""); PropertiesComponent.getInstance().setValue("arrayFromData1", arrayFromData1 + ""); PropertiesComponent.getInstance().setValue("objectFromDataStr", objectFromDataStr + ""); PropertiesComponent.getInstance().setValue("objectFromDataStr1", objectFromDataStr1 + ""); PropertiesComponent.getInstance().setValue("arrayFromData1Str", arrayFromData1Str + ""); PropertiesComponent.getInstance().setValue("suffixStr", suffixStr + ""); PropertiesComponent.getInstance().setValue("reuseEntity", reuseEntity + ""); PropertiesComponent.getInstance().setValue("virgoMode", virgoMode + ""); PropertiesComponent.getInstance().setValue("filedNamePreFixStr", filedNamePreFixStr + ""); PropertiesComponent.getInstance().setValue("annotationStr", annotationStr + ""); PropertiesComponent.getInstance().setValue("errorCount", errorCount + ""); PropertiesComponent.getInstance().setValue("entityPackName", entityPackName + ""); PropertiesComponent.getInstance().setValue("useFieldNamePrefix", useFieldNamePrefix + ""); PropertiesComponent.getInstance().setValue("generateComments", generateComments + ""); PropertiesComponent.getInstance().setValue("splitGenerate", splitGenerate + ""); } public static Config getInstant() { if (config == null) { config = new Config(); config.setFieldPrivateMode(PropertiesComponent.getInstance().getBoolean("fieldPrivateMode", true)); config.setUseSerializedName(PropertiesComponent.getInstance().getBoolean("useSerializedName", false)); config.setObjectFromData(PropertiesComponent.getInstance().getBoolean("objectFromData", false)); config.setObjectFromData1(PropertiesComponent.getInstance().getBoolean("objectFromData1", false)); config.setArrayFromData(PropertiesComponent.getInstance().getBoolean("arrayFromData", false)); config.setArrayFromData1(PropertiesComponent.getInstance().getBoolean("arrayFromData1", false)); config.setSuffixStr(PropertiesComponent.getInstance().getValue("suffixStr", "Bean")); config.setReuseEntity(PropertiesComponent.getInstance().getBoolean("reuseEntity", false)); config.setObjectFromDataStr(PropertiesComponent.getInstance().getValue("objectFromDataStr", Constant.objectFromObject)); config.setObjectFromDataStr1(PropertiesComponent.getInstance().getValue("objectFromDataStr1", Constant.objectFromObject1)); config.setArrayFromDataStr(PropertiesComponent.getInstance().getValue("arrayFromDataStr", Constant.arrayFromData)); config.setArrayFromData1Str(PropertiesComponent.getInstance().getValue("arrayFromData1Str", Constant.arrayFromData1)); config.setAnnotationStr(PropertiesComponent.getInstance().getValue("annotationStr", Constant.gsonAnnotation)); config.setEntityPackName(PropertiesComponent.getInstance().getValue("entityPackName")); config.setFiledNamePreFixStr(PropertiesComponent.getInstance().getValue("filedNamePreFixStr")); config.setErrorCount(PropertiesComponent.getInstance().getOrInitInt("errorCount", 0)); config.setVirgoMode(PropertiesComponent.getInstance().getBoolean("virgoMode", true)); config.setUseFieldNamePrefix(PropertiesComponent.getInstance().getBoolean("useFieldNamePrefix", false)); config.setGenerateComments(PropertiesComponent.getInstance().getBoolean("generateComments", true)); config.setSplitGenerate(PropertiesComponent.getInstance().getBoolean("splitGenerate", false)); } return config; } public boolean isUseFieldNamePrefix() { return useFieldNamePrefix; } public void setUseFieldNamePrefix(boolean useFieldNamePrefix) { this.useFieldNamePrefix = useFieldNamePrefix; } public boolean isObjectFromData() { return objectFromData; } public int getErrorCount() { return errorCount; } public void setErrorCount(int errorCount) { this.errorCount = errorCount; } public String getEntityPackName() { return entityPackName; } public String geFullNameAnnotation() { if (annotationStr.equals(Constant.gsonAnnotation)) { return Constant.gsonFullNameAnnotation; } if (annotationStr.equals(Constant.jackAnnotation)) { return Constant.jackFullNameAnnotation; } if (annotationStr.equals(Constant.fastAnnotation)) { return Constant.fastFullNameAnnotation; } if (annotationStr.equals(Constant.loganSquareAnnotation)) { return Constant.loganSquareFullNameAnnotation; } return annotationStr.replaceAll("\\(", "(").replaceAll("\\)", ")").replaceAll("\\s\\*", ""); } public boolean isGenerateComments() { return generateComments; } public void setGenerateComments(boolean generateComments) { this.generateComments = generateComments; } public void setEntityPackName(String entityPackName) { this.entityPackName = entityPackName; } public boolean isVirgoMode() { return virgoMode; } public void setVirgoMode(boolean virgoMode) { this.virgoMode = virgoMode; } public String getFiledNamePreFixStr() { return filedNamePreFixStr; } public void setFiledNamePreFixStr(String filedNamePreFixStr) { this.filedNamePreFixStr = filedNamePreFixStr; } public String getAnnotationStr() { return annotationStr; } public void setAnnotationStr(String annotationStr) { this.annotationStr = annotationStr; } public void setObjectFromData(boolean objectFromData) { this.objectFromData = objectFromData; } public boolean isObjectFromData1() { return objectFromData1; } public void setObjectFromData1(boolean objectFromData2) { this.objectFromData1 = objectFromData2; } public boolean isArrayFromData() { return arrayFromData; } public void setArrayFromData(boolean arrayFromData) { this.arrayFromData = arrayFromData; } public boolean isArrayFromData1() { return arrayFromData1; } public void setArrayFromData1(boolean arrayFromData1) { this.arrayFromData1 = arrayFromData1; } public void setObjectFromDataStr(String objectFromDataStr) { this.objectFromDataStr = objectFromDataStr; } public void setObjectFromDataStr1(String objectFromDataStr1) { this.objectFromDataStr1 = objectFromDataStr1; } public void setArrayFromDataStr(String arrayFromDataStr) { this.arrayFromDataStr = arrayFromDataStr; } public void setArrayFromData1Str(String arrayFromData1Str) { this.arrayFromData1Str = arrayFromData1Str; } public String getObjectFromDataStr() { return objectFromDataStr; } public String getObjectFromDataStr1() { return objectFromDataStr1; } public String getArrayFromDataStr() { return arrayFromDataStr; } public String getArrayFromData1Str() { return arrayFromData1Str; } public String getSuffixStr() { return suffixStr; } public void setSuffixStr(String suffixStr) { this.suffixStr = suffixStr; } public boolean isReuseEntity() { return reuseEntity; } public void setReuseEntity(boolean reuseEntity) { this.reuseEntity = reuseEntity; } public boolean isUseSerializedName() { return useSerializedName; } public void setUseSerializedName(boolean useSerializedName) { this.useSerializedName = useSerializedName; } public boolean isFieldPrivateMode() { return fieldPrivateMode; } public void setFieldPrivateMode(boolean fieldPrivateMode) { this.fieldPrivateMode = fieldPrivateMode; } public void saveObjectFromDataStr(String objectFromDataStr) { this.objectFromDataStr = objectFromDataStr; PropertiesComponent.getInstance().setValue("objectFromDataStr", objectFromDataStr + ""); } public void saveObjectFromDataStr1(String objectFromDataStr1) { this.objectFromDataStr1 = objectFromDataStr1; PropertiesComponent.getInstance().setValue("objectFromDataStr1", objectFromDataStr1 + ""); } public void saveArrayFromDataStr(String arrayFromDataStr) { this.arrayFromDataStr = arrayFromDataStr; PropertiesComponent.getInstance().setValue("arrayFromDataStr", arrayFromDataStr + ""); } public void saveArrayFromData1Str(String arrayFromData1Str) { this.arrayFromData1Str = arrayFromData1Str; PropertiesComponent.getInstance().setValue("arrayFromData1Str", arrayFromData1Str + ""); } public boolean isToastError() { if (Config.getInstant().getErrorCount() < 3) { Config.getInstant().setErrorCount(Config.getInstant().getErrorCount() + 1); Config.getInstant().save(); return true; } return false; } public boolean isSplitGenerate() { return splitGenerate; } public void setSplitGenerate(boolean splitGenerate) { this.splitGenerate = splitGenerate; } public void saveCurrentPackPath(String entityPackName) { if (entityPackName == null) { return; } setEntityPackName(entityPackName+"."); save(); } }