package com.cfsoft.ofbiz.dom.controller.model;
import com.cfsoft.ofbiz.dom.controller.api.Controller;
import com.cfsoft.ofbiz.dom.controller.api.RequestMap;
import com.cfsoft.ofbiz.dom.controller.api.Response;
import com.cfsoft.ofbiz.dom.controller.api.ViewMap;
import com.intellij.psi.PsiClass;
import com.intellij.psi.xml.XmlFile;
import com.intellij.util.Processor;
import com.intellij.util.xml.model.DomModel;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import java.util.List;
/**
* Services for accessing <code>controller.xml</code> files.
*
* @author Yann Cébron
*/
public interface ControllerModel extends DomModel<Controller> {
/**
* Get all {@link Controller} elements of the files belonging to this model.
*
* @return List.
*/
@NotNull
List<Controller> getMergedControllers();
@NotNull
List<RequestMap> getAllRequestMaps();
@NotNull
List<ViewMap> getAllViewMaps();
List<Response> getAllResponses();
@NotNull
List<ViewMap> findViewMapByName(@NotNull @NonNls String viewName);
boolean isServiceClass(PsiClass psiClass);
boolean processViewMap(Processor<ViewMap> processor);
}