// Path: src/main/java/de/mprengemann/intellij/plugin/androidicons/controllers/defaults/IDefaultsController.java
// public interface IDefaultsController {
//     Set<Resolution> getResolutions();
//     void setResolutions(Set<Resolution> resolutions);
// 
//     ImageAsset getImageAsset();
//     void setImageAsset(ImageAsset imageAsset);
// 
//     Resolution getSourceResolution();
//     void setSourceResolution(Resolution sourceResolution);
// 
//     String getSize();
//     void setSize(String size);
// 
//     String getColor();
//     void setColor(String color);
// 
//     ResizeAlgorithm getAlgorithm();
//     void setAlgorithm(ResizeAlgorithm algorithm);
// 
//     String getMethod();
//     void setMethod(String method);
// 
//     Format getFormat();
//     void setFormat(Format format);
// 
//     Destination getDestination();
//     void setDestination(Destination destination);
// 
//     void restore();
//     void tearDown();
// }
// 
// Path: src/main/java/de/mprengemann/intellij/plugin/androidicons/controllers/icons/materialicons/IMaterialIconsController.java
// public interface IMaterialIconsController extends IIconPackController {
//     void openHelp();
// }
// 
// Path: src/main/java/de/mprengemann/intellij/plugin/androidicons/controllers/settings/ISettingsController.java
// public interface ISettingsController extends IController<SettingsObserver> {
//     void saveResRootForProject(String fileUrl);
//     VirtualFile getResourceRoot();
//     String getResourceRootPath();
// 
//     String getLastImageFolder();
//     void saveLastImageFolder(String fileUrl);
// 
//     void setProject(Project project);
// 
//     void saveResolutions(Set<Resolution> resolutions);
//     Set<Resolution> getResolutions(Set<Resolution> defaultResolutions);
// 
//     void saveSourceResolution(Resolution sourceResolution);
//     Resolution getSourceResolution(Resolution defaultSourceResolution);
// 
//     void saveAlgorithm(ResizeAlgorithm algorithm);
//     ResizeAlgorithm getAlgorithm(ResizeAlgorithm defaultAlgorithm);
// 
//     void saveMethod(String method);
//     String getMethod(String defaultMethod);
// 
//     void saveColor(String color);
//     String getColor();
// 
//     void saveSize(String size);
//     String getSize();
// 
//     void saveImageAsset(ImageAsset imageAsset);
//     ImageAsset getImageAsset();
// 
//     void saveFormat(Format format);
//     Format getFormat(Format defaultFormat);
// 
//     void saveDestination(Destination destination);
//     Destination getDestination(Destination defaultDestination);
// 
// }


import com.intellij.openapi.project.Project;
import de.mprengemann.intellij.plugin.androidicons.controllers.defaults.IDefaultsController;
import de.mprengemann.intellij.plugin.androidicons.controllers.icons.androidicons.IAndroidIconsController;
import de.mprengemann.intellij.plugin.androidicons.controllers.icons.materialicons.IMaterialIconsController;
import de.mprengemann.intellij.plugin.androidicons.controllers.settings.ISettingsController;
package de.mprengemann.intellij.plugin.androidicons.controllers;


public interface IControllerFactory {

    void setProject(Project project);

    IAndroidIconsController getAndroidIconsController();

    IMaterialIconsController getMaterialIconsController();

    IDefaultsController getDefaultsController();

// Path: src/main/java/de/mprengemann/intellij/plugin/androidicons/controllers/defaults/IDefaultsController.java
// public interface IDefaultsController {
//     Set<Resolution> getResolutions();
//     void setResolutions(Set<Resolution> resolutions);
// 
//     ImageAsset getImageAsset();
//     void setImageAsset(ImageAsset imageAsset);
// 
//     Resolution getSourceResolution();
//     void setSourceResolution(Resolution sourceResolution);
// 
//     String getSize();
//     void setSize(String size);
// 
//     String getColor();
//     void setColor(String color);
// 
//     ResizeAlgorithm getAlgorithm();
//     void setAlgorithm(ResizeAlgorithm algorithm);
// 
//     String getMethod();
//     void setMethod(String method);
// 
//     Format getFormat();
//     void setFormat(Format format);
// 
//     Destination getDestination();
//     void setDestination(Destination destination);
// 
//     void restore();
//     void tearDown();
// }
// 
// Path: src/main/java/de/mprengemann/intellij/plugin/androidicons/controllers/icons/materialicons/IMaterialIconsController.java
// public interface IMaterialIconsController extends IIconPackController {
//     void openHelp();
// }
// 
// Path: src/main/java/de/mprengemann/intellij/plugin/androidicons/controllers/settings/ISettingsController.java
// public interface ISettingsController extends IController<SettingsObserver> {
//     void saveResRootForProject(String fileUrl);
//     VirtualFile getResourceRoot();
//     String getResourceRootPath();
// 
//     String getLastImageFolder();
//     void saveLastImageFolder(String fileUrl);
// 
//     void setProject(Project project);
// 
//     void saveResolutions(Set<Resolution> resolutions);
//     Set<Resolution> getResolutions(Set<Resolution> defaultResolutions);
// 
//     void saveSourceResolution(Resolution sourceResolution);
//     Resolution getSourceResolution(Resolution defaultSourceResolution);
// 
//     void saveAlgorithm(ResizeAlgorithm algorithm);
//     ResizeAlgorithm getAlgorithm(ResizeAlgorithm defaultAlgorithm);
// 
//     void saveMethod(String method);
//     String getMethod(String defaultMethod);
// 
//     void saveColor(String color);
//     String getColor();
// 
//     void saveSize(String size);
//     String getSize();
// 
//     void saveImageAsset(ImageAsset imageAsset);
//     ImageAsset getImageAsset();
// 
//     void saveFormat(Format format);
//     Format getFormat(Format defaultFormat);
// 
//     void saveDestination(Destination destination);
//     Destination getDestination(Destination defaultDestination);
// 
// }


// Path: src/main/java/de/mprengemann/intellij/plugin/androidicons/controllers/IControllerFactory.java
import com.intellij.openapi.project.Project;
import de.mprengemann.intellij.plugin.androidicons.controllers.defaults.IDefaultsController;
import de.mprengemann.intellij.plugin.androidicons.controllers.icons.androidicons.IAndroidIconsController;
import de.mprengemann.intellij.plugin.androidicons.controllers.icons.materialicons.IMaterialIconsController;
import de.mprengemann.intellij.plugin.androidicons.controllers.settings.ISettingsController;

package de.mprengemann.intellij.plugin.androidicons.controllers;


public interface IControllerFactory {

    void setProject(Project project);

    IAndroidIconsController getAndroidIconsController();

    IMaterialIconsController getMaterialIconsController();

    IDefaultsController getDefaultsController();

    ISettingsController getSettingsController();