Example usage for org.eclipse.jdt.core IPackageFragmentRoot exists

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot exists

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot exists.

Prototype

boolean exists();

Source Link

Document

Returns whether this Java element exists in the model.

Usage

From source file:org.fastcode.util.SourceUtil.java

License:Open Source License

/**
 *
 * @param project// w  ww.  ja  v  a 2  s  .  c o  m
 * @return
 */
public static String[][] getSourcePathsForProject(final String project) {
    final IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();

    final List<String> paths = new ArrayList<String>();
    try {
        for (final IProject prjct : projects) {
            if (project == null || prjct.getName().equals(project)) {
                final IJavaProject javaProject = JavaCore.create(prjct);
                if (javaProject == null || !javaProject.exists()) {
                    continue;
                }
                if (isProjectBinary(javaProject)) {
                    continue;
                }
                for (final IPackageFragmentRoot packageFragmentRoot : javaProject
                        .getAllPackageFragmentRoots()) {
                    if (packageFragmentRoot == null || !packageFragmentRoot.exists()
                            || packageFragmentRoot.isArchive() || packageFragmentRoot.isExternal()) {
                        continue;
                    }
                    if (!packageFragmentRoot.getParent().equals(javaProject)) { // discard
                        // roots
                        // which
                        // come
                        // from
                        // another
                        // project.
                        continue;
                    }
                    final String fullSrcPath = packageFragmentRoot.getPath().toString();
                    final String srcPath = fullSrcPath
                            .replaceFirst(FORWARD_SLASH + javaProject.getElementName(), EMPTY_STR);
                    if (!paths.contains(srcPath)) {
                        paths.add(srcPath);
                    }
                }
            }
        }
    } catch (final Exception ex) {
        ex.printStackTrace();
    }

    return getStringArrayFromList(paths, true);
}

From source file:org.fastcode.util.SourceUtil.java

License:Open Source License

/**
 *
 * @param javaProject/*  w w  w  . j  ava2s .c o m*/
 * @return
 * @throws Exception
 */
private static boolean isProjectBinary(final IJavaProject javaProject) throws Exception {
    for (final IPackageFragmentRoot packageFragmentRoot : javaProject.getAllPackageFragmentRoots()) {
        if (packageFragmentRoot != null && packageFragmentRoot.exists() && !packageFragmentRoot.isArchive()) {
            return false;
        }
    }
    return true;
}

From source file:org.fastcode.util.SourceUtil.java

License:Open Source License

/**
 * @param fastCodeContext//w w  w . ja v a2s  .  c  o m
 * @param createSimilarDescriptor
 * @param length
 * @throws Exception
 */
public static void populatecreateDescClassWithUserInput(final FastCodeContext fastCodeContext,
        final CreateSimilarDescriptor createSimilarDescriptor, final String[] inputs,
        final boolean differentName, final IType typeToWorkOn) throws Exception {

    final Shell parentShell = MessageUtil.getParentShell();
    final Shell shell = parentShell == null ? new Shell() : parentShell;
    IPackageFragmentRoot packageFragmentRoot = null;
    IPackageFragment tmpPackageFragment = null;
    final GlobalSettings globalSettings = getInstance();
    String superClass = EMPTY_STR;
    IType supType = null;
    int k = 0;
    boolean isMultiple = false;
    if (inputs.length > 1) {
        isMultiple = true;
    }
    createSimilarDescriptor.setNoOfInputs(inputs.length);
    for (final String input : inputs) {
        if (differentName) {
            final Pattern p = Pattern.compile(createSimilarDescriptor.getFromPattern());
            final Matcher m = p.matcher(typeToWorkOn.getFullyQualifiedName());

            if (!m.matches()) {
                continue;
            }

            final String replatePart = m.group(m.groupCount());
            createSimilarDescriptor.createReplacePartAndValue(replatePart, input);
        }
    }

    final CreateSimilarDescriptorClass[] createSimilarDescUserChoice = new CreateSimilarDescriptorClass[createSimilarDescriptor
            .getCreateSimilarDescriptorClasses().length];
    for (final CreateSimilarDescriptorClass createSimilarDescriptorClass : createSimilarDescriptor
            .getCreateSimilarDescriptorClasses()) {
        IPackageFragment packageFragment = null;
        if (createSimilarDescriptorClass == null) {
            continue;
        }
        String toName = createSimilarDescriptorClass.getToPattern();
        IType[] fldTypeArr = null;
        String targetProject = null;
        if (packageFragmentRoot == null) {
            targetProject = createSimilarDescriptorClass.getProject();
            if (fastCodeContext.getFromType() == null) {
                final IJavaProject project = getJavaProject(targetProject);
                if (project != null && project.exists() && !isEmpty(createSimilarDescriptorClass.getPackge())) {
                    for (final IPackageFragmentRoot pkgFragmntRoot : project.getPackageFragmentRoots()) {
                        packageFragment = pkgFragmntRoot
                                .getPackageFragment(createSimilarDescriptorClass.getPackge());
                        if (packageFragment != null && packageFragment.exists()) {
                            packageFragmentRoot = pkgFragmntRoot;
                            break;
                        }
                    }
                }
                if (packageFragment == null || !packageFragment.exists()) {
                    final SelectionDialog packageDialog = JavaUI.createPackageDialog(shell, project, 0, null);
                    if (packageDialog.open() == CANCEL) {
                        return;
                    }
                    packageFragment = (IPackageFragment) packageDialog.getResult()[0];
                    packageFragmentRoot = (IPackageFragmentRoot) packageFragment.getParent();
                } else if (isEmpty(createSimilarDescriptorClass.getSubPackage())
                        && packageFragment.hasSubpackages()) {
                    final List<IPackageFragment> subPackages = new ArrayList<IPackageFragment>();
                    for (final IJavaElement chldPkgFragment : packageFragmentRoot.getChildren()) {
                        if (chldPkgFragment instanceof IPackageFragment && chldPkgFragment.getElementName()
                                .startsWith(packageFragment.getElementName())) {
                            subPackages.add((IPackageFragment) chldPkgFragment);
                        }
                    }
                    if (!subPackages.isEmpty()) {
                        final PackageSelectionDialog selectionDialog = new PackageSelectionDialog(shell,
                                "Sub Package", "Choose the sub pacage from below",
                                subPackages.toArray(new IPackageFragment[0]));
                        if (selectionDialog.open() != CANCEL) {
                            packageFragment = (IPackageFragment) selectionDialog.getFirstResult();
                        }
                    }
                }
            } else {
                if (fastCodeContext.isUnitTest()) {
                    String sourcePath = globalSettings.isUseDefaultForPath()
                            ? globalSettings.getSourcePathTest()
                            : createSimilarDescriptorClass.getSourcePath();
                    sourcePath = getDefaultPathFromProject(fastCodeContext.getFromType().getJavaProject(),
                            "test", sourcePath);
                    packageFragmentRoot = getPackageRootFromProject(
                            fastCodeContext.getFromType().getJavaProject(), sourcePath);
                } else if (!isEmpty(targetProject)) {
                    final String sourcePath = globalSettings.isUseDefaultForPath()
                            ? getPathFromGlobalSettings(
                                    fastCodeContext.getFromType().getJavaProject().getElementName())
                            : createSimilarDescriptorClass.getSourcePath();
                    ;
                    packageFragmentRoot = getPackageRootFromProject(createSimilarDescriptorClass.getProject(),
                            sourcePath);
                } else {
                    packageFragmentRoot = (IPackageFragmentRoot) fastCodeContext.getFromType()
                            .getPackageFragment().getParent();
                    targetProject = packageFragmentRoot.getParent().getElementName();
                }
                final String fullname = fastCodeContext.getFromType().getFullyQualifiedName();
                final String fromPattern = createSimilarDescriptor.getFromPattern();
                if (fromPattern != null) {
                    parseTokens(fromPattern, fullname, fastCodeContext.getPlaceHolders());
                }
                if (packageFragmentRoot == null || !packageFragmentRoot.exists()) {
                    throw new Exception("Unable to find source path for, please check configuration.");
                }
                toName = replacePlaceHolders(toName, fastCodeContext.getPlaceHolders());
                if (createSimilarDescriptor.isDifferentName()) {
                    toName = fullname.replaceAll(createSimilarDescriptor.getReplacePart(),
                            createSimilarDescriptor.getReplaceValue());
                }
                final int lastDotPos = toName.lastIndexOf(DOT_CHAR);
                final String newpkg = lastDotPos != -1 ? toName.substring(0, lastDotPos)
                        : fastCodeContext.getFromType().getPackageFragment().getElementName();
                packageFragment = packageFragmentRoot.getPackageFragment(newpkg);

            }
            tmpPackageFragment = packageFragment;

        }

        if (tmpPackageFragment != null) {
            final List<IType> importTypes = new ArrayList<IType>();

            final IJavaProject javaProject = tmpPackageFragment.getJavaProject();
            final String[] impTypes = replacePlaceHolders(createSimilarDescriptorClass.getImportTypes(),
                    fastCodeContext.getPlaceHolders());
            final String[] superTypes = replacePlaceHolders(createSimilarDescriptorClass.getSuperTypes(),
                    fastCodeContext.getPlaceHolders());
            final String[] implementTypes = replacePlaceHolders(
                    createSimilarDescriptorClass.getImplementTypes(), fastCodeContext.getPlaceHolders());
            gatherImports(javaProject, impTypes, IJavaElementSearchConstants.CONSIDER_ALL_TYPES, "import",
                    importTypes);
            final List<IType> implTypes = gatherImports(javaProject, implementTypes,
                    IJavaElementSearchConstants.CONSIDER_INTERFACES, "implement", importTypes);
            // createSimilarDescriptorClass.setUserInputInterface(implTypes);
            // createSimilarDescriptorClass.setUserInputImports(importTypes);
            if (superTypes != null && superTypes.length > 0) {

                final FastCodeType[] fastCodeTypes = new FastCodeType[superTypes.length];
                int i = 0;
                for (final String superType : superTypes) {
                    fastCodeTypes[i++] = parseType(superType, null);
                }
                final ClassSelectionDialog classSelectionDialog = new ClassSelectionDialog(shell, "Super Class",
                        "Choose the classes to extend", fastCodeTypes, false);
                final int ret = classSelectionDialog.open();
                if (ret != CANCEL) {
                    // final FastCodeType fastCodeType = (FastCodeType)
                    // classSelectionDialog.getResult()[0];
                    supType = tmpPackageFragment.getJavaProject()
                            .findType(classSelectionDialog.getResult()[0].toString());

                    if (supType != null && supType.exists()) {
                        // superClass = flattenType(fastCodeType, false);
                        superClass = superClass.replace(supType.getFullyQualifiedName(),
                                supType.getElementName());
                        // placeHolders.put("super_class", superClass);
                        if (!supType.isBinary() && supType.getCompilationUnit() != null
                                && supType.getCompilationUnit().exists()) {
                            fastCodeContext.addResource(new FastCodeResource(supType.getResource()));
                        }
                    }
                }

            }

            if (createSimilarDescriptorClass.isCreateFields()) {
                final SelectionDialog selectionDialog = JavaUI.createTypeDialog(shell, null,
                        SearchEngine.createWorkspaceScope(),
                        IJavaElementSearchConstants.CONSIDER_CLASSES_AND_INTERFACES, true,
                        createSimilarDescriptorClass.getCreateFieldsName());
                selectionDialog.setMessage("Please select one or more classes to create field.");
                selectionDialog.setTitle("Select Class");

                if (selectionDialog.open() != CANCEL) {
                    int i = 0;
                    final Object[] tmpArray = selectionDialog.getResult();
                    fldTypeArr = new IType[tmpArray.length];
                    for (final Object type : tmpArray) {
                        final IType fldType = (IType) type;
                        if (isAbstract(fldType.getFlags())) {
                            openWarning(shell, "Warning",
                                    "Cannot make an instance of an abstract class " + fldType.getElementName());
                            continue;
                        }
                        fldTypeArr[i] = fldType;
                        i++;
                    }

                }
            }
            createSimilarDescUserChoice[k] = new CreateSimilarDescriptorClass.Builder()
                    .withUserInputPackage(packageFragment).withUserInputImports(importTypes)
                    .withUserInputInterface(implTypes).withSuperClass(superClass)
                    .withUserInputFieldTypes(fldTypeArr)
                    .withCreateFields(createSimilarDescriptorClass.isCreateFields())
                    .withClassAnnotations(createSimilarDescriptorClass.getClassAnnotations())
                    .withClassBody(createSimilarDescriptorClass.getClassBody())
                    .withClassHeader(createSimilarDescriptorClass.getClassHeader())
                    .withClassInsideBody(createSimilarDescriptorClass.getClassInsideBody())
                    .withClassType(createSimilarDescriptorClass.getClassType())
                    .withConvertMethodParam(createSimilarDescriptorClass.isConvertMethodParam())
                    .withConvertMethodParamFrom(createSimilarDescriptorClass.getConvertMethodParamFrom())
                    .withConvertMethodParamTo(createSimilarDescriptorClass.getConvertMethodParamTo())
                    .withCreateDefaultConstructor(createSimilarDescriptorClass.isCreateDefaultConstructor())
                    .withCreateEqualsHashcode(
                            isMultiple ? false : createSimilarDescriptorClass.isCreateEqualsHashcode())
                    .withCreateFieldsName(createSimilarDescriptorClass.getCreateFieldsName())
                    .withCreateInstanceConstructor(
                            isMultiple ? false : createSimilarDescriptorClass.isCreateInstanceConstructor())
                    .withCreateMethodBody(createSimilarDescriptorClass.isCreateMethodBody())
                    .withCreateToString(isMultiple ? false : createSimilarDescriptorClass.isCreateToString())
                    .withCreateUnitTest(createSimilarDescriptorClass.isCreateUnitTest())
                    .withFieldAnnotations(createSimilarDescriptorClass.getFieldAnnotations())
                    .withFinalClass(createSimilarDescriptorClass.isFinalClass())
                    .withImplementTypes(createSimilarDescriptorClass.getImplementTypes())
                    .withImportTypes(createSimilarDescriptorClass.getImportTypes())
                    .withInclGetterSetterForInstance(
                            createSimilarDescriptorClass.isInclGetterSetterForInstance())
                    .withMethodAnnotations(createSimilarDescriptorClass.getMethodAnnotations())
                    .withPackge(createSimilarDescriptorClass.getPackge())
                    .withProject(createSimilarDescriptorClass.getProject())
                    .withRelationTypeToParent(createSimilarDescriptorClass.getRelationTypeToParent())
                    .withSourcePath(createSimilarDescriptorClass.getSourcePath())
                    .withSubPackage(createSimilarDescriptorClass.getSubPackage())
                    .withSuperTypes(createSimilarDescriptorClass.getSuperTypes())
                    .withUserInputSuperClass(supType).withToPattern(createSimilarDescriptorClass.getToPattern())
                    .withInclInstance(createSimilarDescriptorClass.isInclInstance())
                    .withRelatedDescriptors(new ArrayList<CreateSimilarDescriptorClass>()).build();

            k++;

        }
    }
    if (tmpPackageFragment != null) {
        createSimilarDescriptor.setCreateSimilarDescUserChoice(createSimilarDescUserChoice);
        createSimilarDescriptor.numbersOfCreateSimilarDescUserChoiceClasses(createSimilarDescUserChoice);
    }
}

From source file:org.fusesource.ide.camel.editor.globalconfiguration.beans.BeanConfigUtil.java

License:Open Source License

private IPackageFragmentRoot findPackageFragmentRoot(final IProject project, IJavaProject javaProject)
        throws CoreException {
    IPackageFragmentRoot fromFacade = findPackageFragmentRootWithFacade(project, javaProject);
    if (fromFacade != null) {
        return fromFacade;
    } else {/* w ww.j av a 2s.c om*/
        IPackageFragmentRoot[] allPackageFragmentRoots = javaProject.getAllPackageFragmentRoots();
        if (allPackageFragmentRoots.length == 1) {
            return allPackageFragmentRoots[0];
        } else {
            IFolder tstFolder = project.getFolder("src/main/java"); //$NON-NLS-1$
            IPackageFragmentRoot tstRoot = javaProject.getPackageFragmentRoot(tstFolder);
            if (tstRoot.exists()) {
                return tstRoot;
            } else {
                tstFolder.create(true, true, new NullProgressMonitor());

                // now refresh the package root to ensure we have the right fragment
                tstRoot = javaProject.getPackageFragmentRoot(tstFolder);
            }
            return tstRoot;
        }
    }
}

From source file:org.fusesource.ide.camel.editor.propertysheet.PropertiesUtils.java

License:Open Source License

/**
 * Checks if the package field has to be pre-filled in this page and returns the package
 * fragment to be used for that. The package fragment has the name of the project if the source
 * folder does not contain any package and if the project name is a valid package name. If the
 * source folder contains exactly one package then the name of that package is used as the
 * package fragment's name. <code>null</code> is returned if none of the above is applicable.
 * //from w  w  w.  ja va2 s . c o  m
 * @param javaProject the containing Java project of the selection used to initialize this page
 * 
 * @return the package fragment to be pre-filled in this page or <code>null</code> if no
 *         suitable package can be suggested for the given project
 * 
 * @since 3.9
 */
public static IPackageFragment getPackage(IJavaProject javaProject,
        final IPackageFragmentRoot pkgFragmentRoot) {
    String packName = null;
    IJavaElement[] packages = null;
    try {
        if (pkgFragmentRoot != null && pkgFragmentRoot.exists()) {
            packages = pkgFragmentRoot.getChildren();
            if (packages.length == 1) { // only default package -> use Project name
                packName = javaProject.getElementName();
                // validate package name
                IStatus status = validatePackageName(packName, javaProject);
                if (status.getSeverity() == IStatus.OK) {
                    return pkgFragmentRoot.getPackageFragment(packName);
                }
            } else {
                int noOfPackages = 0;
                IPackageFragment thePackage = null;
                for (final IJavaElement pack : packages) {
                    IPackageFragment pkg = (IPackageFragment) pack;
                    // ignoring empty parent packages and default package
                    if ((!pkg.hasSubpackages() || pkg.hasChildren()) && !pkg.isDefaultPackage()) {
                        noOfPackages++;
                        thePackage = pkg;
                        if (noOfPackages > 1) {
                            return null;
                        }
                    }
                }
                if (noOfPackages == 1) { // use package name
                    packName = thePackage.getElementName();
                    return pkgFragmentRoot.getPackageFragment(packName);
                }
            }
        }
    } catch (JavaModelException e) {
        // fall through
    }
    return null;
}

From source file:org.fusesource.ide.camel.model.service.core.util.PropertiesUtils.java

License:Open Source License

/**
 * Checks if the package field has to be pre-filled in this page and returns
 * the package fragment to be used for that. The package fragment has the
 * name of the project if the source folder does not contain any package and
 * if the project name is a valid package name. If the source folder
 * contains exactly one package then the name of that package is used as the
 * package fragment's name. <code>null</code> is returned if none of the
 * above is applicable.//ww  w  . ja  v a2s.co m
 * 
 * @param javaProject
 *            the containing Java project of the selection used to
 *            initialize this page
 * 
 * @return the package fragment to be pre-filled in this page or
 *         <code>null</code> if no suitable package can be suggested for the
 *         given project
 * 
 * @since 3.9
 */
public static IPackageFragment getPackage(IJavaProject javaProject,
        final IPackageFragmentRoot pkgFragmentRoot) {
    String packName = null;
    IJavaElement[] packages = null;
    try {
        if (pkgFragmentRoot != null && pkgFragmentRoot.exists()) {
            packages = pkgFragmentRoot.getChildren();
            if (packages.length == 1) { // only default package -> use
                // Project name
                packName = javaProject.getElementName();
                // validate package name
                IStatus status = validatePackageName(packName, javaProject);
                if (status.getSeverity() == IStatus.OK) {
                    return pkgFragmentRoot.getPackageFragment(packName);
                }
            } else {
                int noOfPackages = 0;
                IPackageFragment thePackage = null;
                for (final IJavaElement pack : packages) {
                    IPackageFragment pkg = (IPackageFragment) pack;
                    // ignoring empty parent packages and default package
                    if ((!pkg.hasSubpackages() || pkg.hasChildren()) && !pkg.isDefaultPackage()) {
                        noOfPackages++;
                        thePackage = pkg;
                        if (noOfPackages > 1) {
                            return null;
                        }
                    }
                }
                if (noOfPackages == 1) { // use package name
                    packName = thePackage.getElementName();
                    return pkgFragmentRoot.getPackageFragment(packName);
                }
            }
        }
    } catch (JavaModelException e) {
        // fall through
    }
    return null;
}

From source file:org.grails.ide.eclipse.editor.groovy.elements.GrailsProject.java

License:Open Source License

/**
 * @param folder/*w ww.j  a va 2 s. com*/
 * @return
 */
private List<TagLibClass> findTagLibClassesInFolder(IFolder folder) {
    List<TagLibClass> taglibs = new ArrayList<TagLibClass>();
    if (folder.exists()) {
        try {
            IPackageFragmentRoot root = (IPackageFragmentRoot) JavaCore.create(folder);
            if (root != null && root.exists()) {
                for (IJavaElement elt : root.getChildren()) {
                    if (elt.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                        IPackageFragment pack = (IPackageFragment) elt;
                        ICompilationUnit[] units = pack.getCompilationUnits();
                        for (ICompilationUnit unit : units) {
                            if (unit instanceof GroovyCompilationUnit
                                    && unit.getElementName().endsWith("TagLib.groovy")) {
                                taglibs.add(getTagLibClass((GroovyCompilationUnit) unit));
                            }
                        }
                    } else if (elt.getElementType() == IJavaElement.COMPILATION_UNIT) {
                        ICompilationUnit unit = (ICompilationUnit) elt;
                        if (unit instanceof GroovyCompilationUnit
                                && unit.getElementName().endsWith("TagLib.groovy")) {
                            taglibs.add(new TagLibClass((GroovyCompilationUnit) unit));
                        }
                    }
                }
            } else {
                GrailsCoreActivator.log("Problem when looking for tag libraries:\n"
                        + folder.getLocation().toOSString() + " is not a source folder.",
                        new RuntimeException());
            }
        } catch (JavaModelException e) {
            GrailsCoreActivator.log(
                    "Exception when trying to get all taglib classes for " + javaProject.getElementName(), e);
        }
    }
    return taglibs;
}

From source file:org.jboss.tools.batch.internal.core.impl.BatchBuilder.java

License:Open Source License

private void buildJars(JarSet newJars) throws CoreException {
    IJavaProject jp = EclipseUtil.getJavaProject(getBatchProject().getProject());
    if (jp == null)
        return;/* w  w  w  .  j a v a  2 s.c o  m*/

    JavaModelManager manager = JavaModelManager.getJavaModelManager();
    try {
        manager.cacheZipFiles(this);

        FileSet fileSet = new FileSet();
        for (String jar : newJars.getBatchModules()) {
            Path path = new Path(jar);
            IPackageFragmentRoot root = jp.getPackageFragmentRoot(jar);
            if (root == null)
                continue;
            if (!root.exists()) {
                IFile f = getFile(jar);
                if (f != null && f.exists()) {
                    root = jp.getPackageFragmentRoot(f);
                } else {
                    f = getFile(jar + "/META-INF/web-fragment.xml");
                    if (f != null && f.exists()) {
                        root = jp.getPackageFragmentRoot(f.getParent().getParent());
                    }
                }
            }
            if (root == null || !root.exists())
                continue;
            IJavaElement[] es = root.getChildren();
            for (IJavaElement e : es) {
                if (e instanceof IPackageFragment) {
                    IPackageFragment pf = (IPackageFragment) e;
                    IClassFile[] cs = pf.getClassFiles();
                    for (IClassFile c : cs) {
                        fileSet.add(path, c.getType());
                    }
                }
            }
        }
        build(fileSet, getBatchProject());

    } finally {
        manager.flushZipFiles(this);
    }
}

From source file:org.jboss.tools.batch.internal.core.scanner.BatchArchiveDetector.java

License:Open Source License

public int resolve(String jar, IBatchProject project) throws JavaModelException {
    File jarFile = new File(jar);
    if (jarFile.isFile()) {
        if (computeIsJarBatchArchive(jarFile)) {
            setBatchArchive(jar, ARCHIVE);
        } else {/*from   w  w w .ja  v a2 s  . com*/
            setBatchArchive(jar, NOT_ARCHIVE);
        }
    } else if (jarFile.isDirectory()) {
        IPackageFragmentRoot root = findPackageFragmentRoot(jar, project);
        if (root != null && root.exists()) {
            if (hasBatchArtifcts(root, project)) {
                setBatchArchive(jar, ARCHIVE);
            } else {
                setBatchArchive(jar, NOT_ARCHIVE);
            }
        }
    }
    return getBatchArchive(jar);
}

From source file:org.jboss.tools.batch.internal.core.scanner.BatchArchiveDetector.java

License:Open Source License

public static IPackageFragmentRoot findPackageFragmentRoot(String jar, IJavaProject jp) {
    IPackageFragmentRoot root = jp.getPackageFragmentRoot(jar);
    if (root != null && !root.exists()) {
        IFile f = BatchBuilder.getFile(jar);
        if (f != null && f.exists()) {
            root = jp.getPackageFragmentRoot(f);
        } else {/*from  w w w  . j a v a2  s .  c  om*/
            IContainer c = ResourcesPlugin.getWorkspace().getRoot()
                    .getContainerForLocation(new Path(jar + "/META-INF").makeAbsolute());
            if (c != null && c.exists()) {
                root = jp.getPackageFragmentRoot(c.getParent());
            }
        }
    }
    return root;
}