package com.redhat.ceylon.eclipse.java2ceylon;
import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.ITypeRoot;
import com.redhat.ceylon.compiler.typechecker.TypeChecker;
import com.redhat.ceylon.compiler.typechecker.context.Context;
import com.redhat.ceylon.eclipse.core.model.LookupEnvironmentUtilities;
import com.redhat.ceylon.ide.common.model.BaseIdeModule;
import com.redhat.ceylon.ide.common.model.CeylonBinaryUnit;
import com.redhat.ceylon.ide.common.model.CeylonIdeConfig;
import com.redhat.ceylon.ide.common.model.CeylonProject;
import com.redhat.ceylon.ide.common.model.CeylonProjectConfig;
import com.redhat.ceylon.ide.common.model.CeylonProjects;
import com.redhat.ceylon.ide.common.model.CrossProjectBinaryUnit;
import com.redhat.ceylon.ide.common.model.IdeModelLoader;
import com.redhat.ceylon.ide.common.model.IdeModuleManager;
import com.redhat.ceylon.ide.common.model.IdeModuleSourceMapper;
import com.redhat.ceylon.ide.common.model.JavaClassFile;
import com.redhat.ceylon.ide.common.model.JavaCompilationUnit;
import com.redhat.ceylon.model.loader.model.LazyPackage;
public interface ModelJ2C {
CeylonProjects<IProject, IResource, IFolder, IFile> ceylonModel();
CeylonProjectConfig ceylonConfig(IProject project);
CeylonIdeConfig ideConfig(IProject project);
List<IPackageFragmentRoot> getModulePackageFragmentRoots(
BaseIdeModule module);
IdeModuleManager<IProject, IResource, IFolder, IFile> newModuleManager(
Context context,
CeylonProject<IProject, IResource, IFolder, IFile> ceylonProject);
IdeModuleSourceMapper<IProject, IResource, IFolder, IFile> newModuleSourceMapper(
Context context,
IdeModuleManager<IProject, IResource, IFolder, IFile> moduleManager);
JavaClassFile<IProject, IFolder, IFile, ITypeRoot, IJavaElement> newJavaClassFile(
ITypeRoot typeRoot, String relativePath, String fileName,
String fullPath, LazyPackage pkg);
CeylonBinaryUnit<IProject, ITypeRoot, IJavaElement> newCeylonBinaryUnit(
ITypeRoot typeRoot, String relativePath, String fileName,
String fullPath, LazyPackage pkg);
CrossProjectBinaryUnit<IProject, IResource, IFolder, IFile, ITypeRoot, IJavaElement> newCrossProjectBinaryUnit(
ITypeRoot typeRoot, String relativePath, String fileName,
String fullPath, LazyPackage pkg);
JavaCompilationUnit<IProject, IFolder, IFile, ITypeRoot, IJavaElement> newJavaCompilationUnit(
ITypeRoot typeRoot, String relativePath, String fileName,
String fullPath, LazyPackage pkg);
LookupEnvironmentUtilities.Provider getLookupEnvironmentProvider(IType type);
IdeModelLoader<IProject, IResource, IFolder, IFile, ITypeRoot, IType> javaProjectModelLoader(IJavaProject javaProject);
void setTypeCheckerOnCeylonProject(
CeylonProject<IProject, IResource, IFolder, IFile> ceylonProject,
TypeChecker typechecker);
}