Search in sources :

Example 11 with ShellException

use of org.mybatis.generator.exception.ShellException in project generator by mybatis.

the class EclipseShellCallback method getFirstSourceFolder.

/**
     * This method returns the first modifiable package fragment root in the
     * java project
     * 
     * @param javaProject
     * @return
     */
private IPackageFragmentRoot getFirstSourceFolder(IJavaProject javaProject) throws ShellException {
    // find the first non-JAR package fragment root
    IPackageFragmentRoot[] roots;
    try {
        roots = javaProject.getPackageFragmentRoots();
    } catch (CoreException e) {
        throw new ShellException(e.getStatus().getMessage(), e);
    }
    IPackageFragmentRoot srcFolder = null;
    for (int i = 0; i < roots.length; i++) {
        if (roots[i].isArchive() || roots[i].isReadOnly() || roots[i].isExternal()) {
            continue;
        } else {
            srcFolder = roots[i];
            break;
        }
    }
    if (srcFolder == null) {
        StringBuffer sb = new StringBuffer();
        sb.append("Cannot find source folder for project ");
        sb.append(javaProject.getElementName());
        throw new ShellException(sb.toString());
    }
    return srcFolder;
}
Also used : CoreException(org.eclipse.core.runtime.CoreException) ShellException(org.mybatis.generator.exception.ShellException) IPackageFragmentRoot(org.eclipse.jdt.core.IPackageFragmentRoot)

Example 12 with ShellException

use of org.mybatis.generator.exception.ShellException in project generator by mybatis.

the class EclipseShellCallback method getFolder.

private IFolder getFolder(String targetProject, String targetPackage) throws ShellException {
    String key = targetProject + targetPackage;
    IFolder folder = folders.get(key);
    if (folder == null) {
        IPackageFragmentRoot root = getSourceFolder(targetProject);
        IPackageFragment packageFragment = getPackage(root, targetPackage);
        try {
            folder = (IFolder) packageFragment.getCorrespondingResource();
            folders.put(key, folder);
        } catch (CoreException e) {
            throw new ShellException(e.getStatus().getMessage(), e);
        }
    }
    return folder;
}
Also used : IPackageFragment(org.eclipse.jdt.core.IPackageFragment) CoreException(org.eclipse.core.runtime.CoreException) ShellException(org.mybatis.generator.exception.ShellException) IFolder(org.eclipse.core.resources.IFolder) IPackageFragmentRoot(org.eclipse.jdt.core.IPackageFragmentRoot)

Aggregations

ShellException (org.mybatis.generator.exception.ShellException)12 File (java.io.File)4 CoreException (org.eclipse.core.runtime.CoreException)4 IPackageFragmentRoot (org.eclipse.jdt.core.IPackageFragmentRoot)3 StringTokenizer (java.util.StringTokenizer)2 IFolder (org.eclipse.core.resources.IFolder)2 Messages.getString (org.mybatis.generator.internal.util.messages.Messages.getString)2 BufferedReader (java.io.BufferedReader)1 FileInputStream (java.io.FileInputStream)1 IOException (java.io.IOException)1 InputStreamReader (java.io.InputStreamReader)1 ArrayList (java.util.ArrayList)1 Iterator (java.util.Iterator)1 DocumentBuilder (javax.xml.parsers.DocumentBuilder)1 DocumentBuilderFactory (javax.xml.parsers.DocumentBuilderFactory)1 IProject (org.eclipse.core.resources.IProject)1 IWorkspaceRoot (org.eclipse.core.resources.IWorkspaceRoot)1 Path (org.eclipse.core.runtime.Path)1 IJavaProject (org.eclipse.jdt.core.IJavaProject)1 IPackageFragment (org.eclipse.jdt.core.IPackageFragment)1