// Path: src/com/nvinayshetty/DTOnator/ClassCreator/ClassType.java
// public enum ClassType {
//     SINGLE_FILE_WITH_INNER_CLASS, SEPARATE_FILE
// }
// 
// Path: src/com/nvinayshetty/DTOnator/DtoCreationOptions/FieldEncapsulationOptions.java
// public enum FieldEncapsulationOptions {
//     PROVIDE_GETTER, PROVIDE_SETTER, PROVIDE_PRIVATE_FIELD
// }
// 
// Path: src/com/nvinayshetty/DTOnator/DtoCreationOptions/FieldType.java
// public enum FieldType {
//     GSON, POJO,GSON_EXPOSE,JACKSON,CUSTOM,AUTO_VALUE
// }
// 
// Path: src/com/nvinayshetty/DTOnator/FieldCreator/LanguageType.java
// public enum LanguageType {
//     JAVA, KOTLIN_VAL,KOTLIN_VAR,KOTLIN
// }
// 
// Path: src/com/nvinayshetty/DTOnator/NameConventionCommands/ClassName/ClassNameOptions.java
// public enum ClassNameOptions {
//     Bean("Bean"),Entity("Entity"),None("None");
// 
//     private String bean;
// 
//     ClassNameOptions(String bean) {
//         this.bean = bean;
//     }
// 
//     public String getName() {
//         return bean;
//     }
// }


import java.util.EnumSet;
import java.util.List;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.project.Project;
import com.intellij.util.xmlb.XmlSerializerUtil;
import com.nvinayshetty.DTOnator.ClassCreator.ClassType;
import com.nvinayshetty.DTOnator.DtoCreationOptions.FieldEncapsulationOptions;
import com.nvinayshetty.DTOnator.DtoCreationOptions.FieldType;
import com.nvinayshetty.DTOnator.FieldCreator.LanguageType;
import com.nvinayshetty.DTOnator.NameConventionCommands.ClassName.ClassNameOptions;
import org.jetbrains.annotations.Nullable;
/*
 * Copyright (C) 2015 Vinaya Prasad N
 *
 *         This program is free software: you can redistribute it and/or modify
 *         it under the terms of the GNU General Public License as published by
 *         the Free Software Foundation, either version 3 of the License, or
 *         (at your option) any later version.
 *
 *         This program is distributed in the hope that it will be useful,
 *         but WITHOUT ANY WARRANTY; without even the implied warranty of
 *         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *         GNU General Public License for more details.
 *
 *         You should have received a copy of the GNU General Public License
 *         along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.nvinayshetty.DTOnator.persistence;




@State(
        name = "DtonatorPreferences",
        storages = {
                @Storage("DtonatorPreferences.xml")}
)
public class DtonatorPreferences implements PersistentStateComponent<DtonatorPreferences> {
    private FieldType fieldType;
    private ClassType classType;
    private KotlinOptions kotlinOptions;
    private List<FieldEncapsulationOptions> encapsulete;
    private List<Naming> naming;
    private String preixingName="";
    private ClassNameOptions classNameOptions;
    private String customAnnotationPattern;
// Path: src/com/nvinayshetty/DTOnator/ClassCreator/ClassType.java
// public enum ClassType {
//     SINGLE_FILE_WITH_INNER_CLASS, SEPARATE_FILE
// }
// 
// Path: src/com/nvinayshetty/DTOnator/DtoCreationOptions/FieldEncapsulationOptions.java
// public enum FieldEncapsulationOptions {
//     PROVIDE_GETTER, PROVIDE_SETTER, PROVIDE_PRIVATE_FIELD
// }
// 
// Path: src/com/nvinayshetty/DTOnator/DtoCreationOptions/FieldType.java
// public enum FieldType {
//     GSON, POJO,GSON_EXPOSE,JACKSON,CUSTOM,AUTO_VALUE
// }
// 
// Path: src/com/nvinayshetty/DTOnator/FieldCreator/LanguageType.java
// public enum LanguageType {
//     JAVA, KOTLIN_VAL,KOTLIN_VAR,KOTLIN
// }
// 
// Path: src/com/nvinayshetty/DTOnator/NameConventionCommands/ClassName/ClassNameOptions.java
// public enum ClassNameOptions {
//     Bean("Bean"),Entity("Entity"),None("None");
// 
//     private String bean;
// 
//     ClassNameOptions(String bean) {
//         this.bean = bean;
//     }
// 
//     public String getName() {
//         return bean;
//     }
// }


// Path: src/com/nvinayshetty/DTOnator/persistence/DtonatorPreferences.java
import java.util.EnumSet;
import java.util.List;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.project.Project;
import com.intellij.util.xmlb.XmlSerializerUtil;
import com.nvinayshetty.DTOnator.ClassCreator.ClassType;
import com.nvinayshetty.DTOnator.DtoCreationOptions.FieldEncapsulationOptions;
import com.nvinayshetty.DTOnator.DtoCreationOptions.FieldType;
import com.nvinayshetty.DTOnator.FieldCreator.LanguageType;
import com.nvinayshetty.DTOnator.NameConventionCommands.ClassName.ClassNameOptions;
import org.jetbrains.annotations.Nullable;

/*
 * Copyright (C) 2015 Vinaya Prasad N
 *
 *         This program is free software: you can redistribute it and/or modify
 *         it under the terms of the GNU General Public License as published by
 *         the Free Software Foundation, either version 3 of the License, or
 *         (at your option) any later version.
 *
 *         This program is distributed in the hope that it will be useful,
 *         but WITHOUT ANY WARRANTY; without even the implied warranty of
 *         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *         GNU General Public License for more details.
 *
 *         You should have received a copy of the GNU General Public License
 *         along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package com.nvinayshetty.DTOnator.persistence;




@State(
        name = "DtonatorPreferences",
        storages = {
                @Storage("DtonatorPreferences.xml")}
)
public class DtonatorPreferences implements PersistentStateComponent<DtonatorPreferences> {
    private FieldType fieldType;
    private ClassType classType;
    private KotlinOptions kotlinOptions;
    private List<FieldEncapsulationOptions> encapsulete;
    private List<Naming> naming;
    private String preixingName="";
    private ClassNameOptions classNameOptions;
    private String customAnnotationPattern;
    private LanguageType languageType;