package com.cfsoft.ofbiz.dom.component;
import com.cfsoft.ofbiz.dom.component.api.Component;
import com.cfsoft.ofbiz.dom.fieldtype.api.FieldtypeModel;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.NotNullLazyKey;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.xml.XmlElement;
import org.jetbrains.annotations.NotNull;
/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 9/27/11
* Time: 2:40 AM
* To change this template use File | Settings | File Templates.
*/
public abstract class ComponentManager {
private static final NotNullLazyKey<ComponentManager, Project> INSTANCE_KEY = ServiceManager.createLazyKey(ComponentManager.class);
public static ComponentManager getInstance(Project project) {
return INSTANCE_KEY.getValue(project);
}
public abstract Component[] getAllComponents();
public abstract Component getComponent(String name, Component ... components);
public abstract String getComponentUrl(XmlElement xmlElement,Component...components);
public abstract String getComponentUrl(String path,Component...components);
public abstract String getRealPath(String componentUrl,Component...components);
public abstract boolean isComponentUrl(String url,Component...components);
public abstract Component getComponent(@NotNull XmlElement xmlElement,Component...components);
public abstract FieldtypeModel getFieldtypeModel(XmlElement xmlElement);
}