Example usage for org.eclipse.jdt.core IPackageFragment hasSubpackages

List of usage examples for org.eclipse.jdt.core IPackageFragment hasSubpackages

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragment hasSubpackages.

Prototype

boolean hasSubpackages() throws JavaModelException;

Source Link

Document

Returns whether this package fragment's name is a prefix of other package fragments in this package fragment's root.

Usage

From source file:com.ebmwebsourcing.petals.common.internal.provisional.ui.JarExportWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {

    Composite container = new Composite(parent, SWT.NONE);
    container.setLayout(new GridLayout());
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    new Label(container, SWT.NONE).setText(
            "Select the resources to export.\nThe following projects are the project you selected and the projects it depends on.");

    int labelFlags = JavaElementLabelProvider.SHOW_BASICS | JavaElementLabelProvider.SHOW_OVERLAY_ICONS
            | JavaElementLabelProvider.SHOW_SMALL_ICONS;

    ITreeContentProvider treeContentProvider = new StandardJavaElementContentProvider() {
        @Override//from  w w  w .  j  av  a  2  s. c o m
        public boolean hasChildren(Object element) {
            return !(element instanceof IPackageFragment) && super.hasChildren(element);
        }

        @Override
        public Object[] getElements(Object parent) {
            if (parent instanceof IWorkspaceRoot) {
                List<IJavaProject> result = JavaUtils
                        .getJavaProjectDependencies(JarExportWizardPage.this.selectedProject);
                return result.toArray();
            }
            return super.getElements(parent);
        }
    };

    final DecoratingLabelProvider provider = new DecoratingLabelProvider(
            new JavaElementLabelProvider(labelFlags), new ProblemsLabelDecorator(null));

    this.javaSelectionViewer = new CheckboxTreeAndListGroup(container, ResourcesPlugin.getWorkspace().getRoot(),
            treeContentProvider, provider, new StandardJavaElementContentProvider(), provider, SWT.NONE, 420,
            150) {

        /*
         * (non-Javadoc)
         * @see com.ebmwebsourcing.petals.common.internal.provisional.ui.jdt.CheckboxTreeAndListGroup
         * #setTreeChecked(java.lang.Object, boolean)
         */
        @Override
        protected void setTreeChecked(final Object element, final boolean state) {
            if (element instanceof IResource) {
                final IResource resource = (IResource) element;
                if (resource.getName().charAt(0) == '.')
                    return;
            }
            super.setTreeChecked(element, state);
        }
    };

    this.javaSelectionViewer.addTreeFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parent, Object element) {

            boolean result = true;
            if (element instanceof IPackageFragment) {
                IPackageFragment pkg = (IPackageFragment) element;
                try {
                    if (pkg.isDefaultPackage())
                        result = pkg.hasChildren();
                    else
                        result = !pkg.hasSubpackages() || pkg.hasChildren()
                                || pkg.getNonJavaResources().length > 0;

                } catch (JavaModelException e) {
                    result = false;
                }
            }

            return result;
        }
    });

    this.javaSelectionViewer.setTreeComparator(new JavaElementComparator());
    this.javaSelectionViewer.setListComparator(new JavaElementComparator());
    this.javaSelectionViewer.addTreeFilter(new ContainerFilter(ContainerFilter.FILTER_NON_CONTAINERS));
    this.javaSelectionViewer.addTreeFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object p, Object element) {
            if (element instanceof IPackageFragmentRoot) {
                IPackageFragmentRoot root = (IPackageFragmentRoot) element;
                return !root.isArchive() && !root.isExternal();
            }
            return true;
        }
    });

    this.javaSelectionViewer.addListFilter(new ContainerFilter(ContainerFilter.FILTER_CONTAINERS));
    this.javaSelectionViewer.expandTreeToLevel(this.selectedProject, 1);
    this.javaSelectionViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            validate();
        }
    });

    // Options
    final Button exportSourcesButton = new Button(container, SWT.CHECK);
    exportSourcesButton.setText("Export sources");
    exportSourcesButton.setSelection(this.exportSources);
    exportSourcesButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            JarExportWizardPage.this.exportSources = exportSourcesButton.getSelection();
            validate();
        }
    });

    final Button compressJarButton = new Button(container, SWT.CHECK);
    compressJarButton.setText("Compress the content of the JAR file");
    compressJarButton.setSelection(this.compressJar);
    compressJarButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            JarExportWizardPage.this.compressJar = compressJarButton.getSelection();
            validate();
        }
    });

    final Button exportWarningsAndErrorsButton = new Button(container, SWT.CHECK);
    exportWarningsAndErrorsButton.setText("Export class files with compile warnings or errors");
    exportWarningsAndErrorsButton.setSelection(this.exportWarningsAndErrors);
    exportWarningsAndErrorsButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            JarExportWizardPage.this.exportWarningsAndErrors = exportWarningsAndErrorsButton.getSelection();
            validate();
        }
    });

    validate();
    setErrorMessage(null);
    setControl(container);
}

From source file:com.liferay.ide.adt.core.model.internal.JavaPackageNameDefaultValueService.java

License:Open Source License

@Override
protected String compute() {
    final IJavaProject project = op().adapt(IJavaProject.class);

    try {/*from  w w  w. j  a v  a2  s  .  com*/
        final IPackageFragmentRoot[] roots = project.getPackageFragmentRoots();

        for (IPackageFragmentRoot root : roots) {
            if (root.getKind() != IPackageFragmentRoot.K_BINARY) {
                for (IJavaElement element : root.getChildren()) {
                    if (element instanceof IPackageFragment) {
                        final IPackageFragment fragment = (IPackageFragment) element;

                        if (!fragment.isDefaultPackage() && !fragment.hasSubpackages()) {
                            return fragment.getElementName();
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        ADTCore.logError(e.getMessage(), e);
    }

    return null;
}

From source file:com.redhat.ceylon.eclipse.code.navigator.NonEssentialElementsFilter.java

License:Open Source License

@Override
public boolean select(Viewer viewer, Object parent, Object element) {
    if (!isStateModelInitialized) {
        initStateModel(viewer);//from www.  j  av  a2s  .co  m
    }
    if (fContentService == null || fStateModel == null) {
        return true;
    } else if (element instanceof IPackageFragment) {
        if (isApplicable() && viewer instanceof StructuredViewer) {
            boolean isHierarchicalLayout = !fStateModel
                    .getBooleanProperty(IExtensionStateConstants.Values.IS_LAYOUT_FLAT);
            try {
                IPackageFragment fragment = (IPackageFragment) element;
                if (isHierarchicalLayout && fragment.hasSubpackages()) {
                    return hasFilteredChildren((StructuredViewer) viewer, fragment);
                }
            } catch (JavaModelException e) {
                return false;
            }
        }
    }
    return doSelect(viewer, parent, element);
}

From source file:org.eclipse.ajdt.internal.ui.wizards.exports.StandardJavaElementContentProvider.java

License:Open Source License

/**
 * Note: This method is for internal use only. Clients should not call this method.
 *//* ww  w . j av a2  s  . c  o m*/
protected boolean isPackageFragmentEmpty(IJavaElement element) throws JavaModelException {
    if (element instanceof IPackageFragment) {
        IPackageFragment fragment = (IPackageFragment) element;
        if (fragment.exists() && !(fragment.hasChildren() || fragment.getNonJavaResources().length > 0)
                && fragment.hasSubpackages())
            return true;
    }
    return false;
}

From source file:org.eclipse.che.jdt.refactoring.RenamePackageTest.java

License:Open Source License

private RenamePackageProcessor helper2(String[] packageNames, String[][] packageFileNames,
        String newPackageName) throws Exception {
    ParticipantTesting.reset();/*from   w w w .  ja  v a 2s . c  om*/
    IPackageFragment[] packages = new IPackageFragment[packageNames.length];
    ICompilationUnit[][] cus = new ICompilationUnit[packageFileNames.length][packageFileNames[0].length];
    for (int i = 0; i < packageNames.length; i++) {
        packages[i] = getRoot().createPackageFragment(packageNames[i], true, null);
        for (int j = 0; j < packageFileNames[i].length; j++) {
            cus[i][j] = createCUfromTestFile(packages[i], packageFileNames[i][j],
                    packageNames[i].replace('.', '/') + "/");
        }
    }
    IPackageFragment thisPackage = packages[0];
    boolean hasSubpackages = thisPackage.hasSubpackages();

    IPath path = thisPackage.getParent().getPath();
    path = path.append(newPackageName.replace('.', '/'));
    IFolder target = ResourcesPlugin.getWorkspace().getRoot().getFolder(path);
    boolean targetExists = target.exists();
    boolean isRename = !targetExists && !thisPackage.hasSubpackages()
            && thisPackage.getResource().getParent().equals(target.getParent());

    String[] createHandles = null;
    String[] moveHandles = null;
    String[] deleteHandles = null;
    boolean doDelete = true;

    String[] renameHandles = null;
    if (isRename) {
        renameHandles = ParticipantTesting.createHandles(thisPackage, thisPackage.getResource());
    } else {
        renameHandles = ParticipantTesting.createHandles(thisPackage);
        IContainer loop = target;
        List handles = new ArrayList();
        while (loop != null && !loop.exists()) {
            handles.add(ParticipantTesting.createHandles(loop)[0]);
            loop = loop.getParent();
        }
        createHandles = (String[]) handles.toArray(new String[handles.size()]);
        IFolder source = (IFolder) thisPackage.getResource();
        deleteHandles = ParticipantTesting.createHandles(source);
        IResource members[] = source.members();
        List movedObjects = new ArrayList();
        for (int i = 0; i < members.length; i++) {
            if (members[i] instanceof IFolder) {
                doDelete = false;
            } else {
                movedObjects.add(members[i]);
            }
        }
        moveHandles = ParticipantTesting.createHandles(movedObjects.toArray());
    }
    RenameJavaElementDescriptor descriptor = createRefactoringDescriptor(thisPackage, newPackageName);
    descriptor.setUpdateReferences(fUpdateReferences);
    descriptor.setUpdateTextualOccurrences(fUpdateTextualMatches);
    setFilePatterns(descriptor);
    Refactoring refactoring = createRefactoring(descriptor);
    RefactoringStatus result = performRefactoring(refactoring);
    assertEquals("preconditions were supposed to pass", null, result);

    if (isRename) {
        ParticipantTesting.testRename(renameHandles,
                new RenameArguments[] { new RenameArguments(newPackageName, fUpdateReferences),
                        new RenameArguments(target.getName(), fUpdateReferences) });
    } else {
        ParticipantTesting.testRename(renameHandles,
                new RenameArguments[] { new RenameArguments(newPackageName, fUpdateReferences) });

        ParticipantTesting.testCreate(createHandles);

        List args = new ArrayList();
        for (int i = 0; i < packageFileNames[0].length; i++) {
            args.add(new MoveArguments(target, fUpdateReferences));
        }
        ParticipantTesting.testMove(moveHandles,
                (MoveArguments[]) args.toArray(new MoveArguments[args.size()]));

        if (doDelete) {
            ParticipantTesting.testDelete(deleteHandles);
        } else {
            ParticipantTesting.testDelete(new String[0]);
        }
    }

    //---

    if (hasSubpackages) {
        assertTrue("old package does not exist anymore",
                getRoot().getPackageFragment(packageNames[0]).exists());
    } else {
        assertTrue("package not renamed", !getRoot().getPackageFragment(packageNames[0]).exists());
    }
    IPackageFragment newPackage = getRoot().getPackageFragment(newPackageName);
    assertTrue("new package does not exist", newPackage.exists());

    for (int i = 0; i < packageFileNames.length; i++) {
        String packageName = (i == 0) ? newPackageName.replace('.', '/') + "/"
                : packageNames[i].replace('.', '/') + "/";
        for (int j = 0; j < packageFileNames[i].length; j++) {
            String s1 = getFileContents(getOutputTestFileName(packageFileNames[i][j], packageName));
            ICompilationUnit cu = (i == 0) ? newPackage.getCompilationUnit(packageFileNames[i][j] + ".java")
                    : cus[i][j];
            //DebugUtils.dump("cu:" + cu.getElementName());
            String s2 = cu.getSource();

            //DebugUtils.dump("expected:" + s1);
            //DebugUtils.dump("was:" + s2);
            assertEqualLines("invalid update in file " + cu.getElementName(), s1, s2);
        }
    }
    RefactoringProcessor processor = ((ProcessorBasedRefactoring) refactoring).getProcessor();
    return (RenamePackageProcessor) processor;
}

From source file:org.eclipse.che.plugin.java.server.jdt.refactoring.RenamePackageTest.java

License:Open Source License

private RenamePackageProcessor helper2(String[] packageNames, String[][] packageFileNames,
        String newPackageName) throws Exception {
    ParticipantTesting.reset();/* w  w  w .  ja v a2 s  .  c  om*/
    IPackageFragment[] packages = new IPackageFragment[packageNames.length];
    ICompilationUnit[][] cus = new ICompilationUnit[packageFileNames.length][packageFileNames[0].length];
    for (int i = 0; i < packageNames.length; i++) {
        packages[i] = getRoot().createPackageFragment(packageNames[i], true, null);
        for (int j = 0; j < packageFileNames[i].length; j++) {
            cus[i][j] = createCUfromTestFile(packages[i], packageFileNames[i][j],
                    packageNames[i].replace('.', '/') + "/");
        }
    }
    IPackageFragment thisPackage = packages[0];
    boolean hasSubpackages = thisPackage.hasSubpackages();

    IPath path = thisPackage.getParent().getPath();
    path = path.append(newPackageName.replace('.', '/'));
    IFolder target = ResourcesPlugin.getWorkspace().getRoot().getFolder(path);
    boolean targetExists = target.exists();
    boolean isRename = !targetExists && !thisPackage.hasSubpackages()
            && thisPackage.getResource().getParent().equals(target.getParent());

    String[] createHandles = null;
    String[] moveHandles = null;
    String[] deleteHandles = null;
    boolean doDelete = true;

    String[] renameHandles = null;
    if (isRename) {
        renameHandles = ParticipantTesting.createHandles(thisPackage, thisPackage.getResource());
    } else {
        renameHandles = ParticipantTesting.createHandles(thisPackage);
        IContainer loop = target;
        List handles = new ArrayList();
        while (loop != null && !loop.exists()) {
            handles.add(ParticipantTesting.createHandles(loop)[0]);
            loop = loop.getParent();
        }
        createHandles = (String[]) handles.toArray(new String[handles.size()]);
        IFolder source = (IFolder) thisPackage.getResource();
        deleteHandles = ParticipantTesting.createHandles(source);
        IResource members[] = source.members();
        List movedObjects = new ArrayList();
        for (int i = 0; i < members.length; i++) {
            if (members[i] instanceof IFolder) {
                doDelete = false;
            } else {
                movedObjects.add(members[i]);
            }
        }
        moveHandles = ParticipantTesting.createHandles(movedObjects.toArray());
    }
    RenameJavaElementDescriptor descriptor = createRefactoringDescriptor(thisPackage, newPackageName);
    descriptor.setUpdateReferences(fUpdateReferences);
    descriptor.setUpdateTextualOccurrences(fUpdateTextualMatches);
    setFilePatterns(descriptor);
    Refactoring refactoring = createRefactoring(descriptor);
    RefactoringStatus result = performRefactoring(refactoring);
    TestCase.assertEquals("preconditions were supposed to pass", null, result);

    if (isRename) {
        ParticipantTesting.testRename(renameHandles,
                new RenameArguments[] { new RenameArguments(newPackageName, fUpdateReferences),
                        new RenameArguments(target.getName(), fUpdateReferences) });
    } else {
        ParticipantTesting.testRename(renameHandles,
                new RenameArguments[] { new RenameArguments(newPackageName, fUpdateReferences) });

        ParticipantTesting.testCreate(createHandles);

        List args = new ArrayList();
        for (int i = 0; i < packageFileNames[0].length; i++) {
            args.add(new MoveArguments(target, fUpdateReferences));
        }
        ParticipantTesting.testMove(moveHandles,
                (MoveArguments[]) args.toArray(new MoveArguments[args.size()]));

        if (doDelete) {
            ParticipantTesting.testDelete(deleteHandles);
        } else {
            ParticipantTesting.testDelete(new String[0]);
        }
    }

    //---

    if (hasSubpackages) {
        assertTrue("old package does not exist anymore",
                getRoot().getPackageFragment(packageNames[0]).exists());
    } else {
        assertTrue("package not renamed", !getRoot().getPackageFragment(packageNames[0]).exists());
    }
    IPackageFragment newPackage = getRoot().getPackageFragment(newPackageName);
    assertTrue("new package does not exist", newPackage.exists());

    for (int i = 0; i < packageFileNames.length; i++) {
        String packageName = (i == 0) ? newPackageName.replace('.', '/') + "/"
                : packageNames[i].replace('.', '/') + "/";
        for (int j = 0; j < packageFileNames[i].length; j++) {
            String s1 = getFileContents(getOutputTestFileName(packageFileNames[i][j], packageName));
            ICompilationUnit cu = (i == 0) ? newPackage.getCompilationUnit(packageFileNames[i][j] + ".java")
                    : cus[i][j];
            //DebugUtils.dump("cu:" + cu.getElementName());
            String s2 = cu.getSource();

            //DebugUtils.dump("expected:" + s1);
            //DebugUtils.dump("was:" + s2);
            assertEqualLines("invalid update in file " + cu.getElementName(), s1, s2);
        }
    }
    RefactoringProcessor processor = ((ProcessorBasedRefactoring) refactoring).getProcessor();
    return (RenamePackageProcessor) processor;
}

From source file:org.eclipse.jpt.jaxb.ui.internal.filters.EmptyInnerPackageFilter.java

License:Open Source License

public boolean select(Viewer viewer, Object parent, Object element) {
    if (element instanceof IPackageFragment) {
        IPackageFragment pkg = (IPackageFragment) element;
        try {/*  w w w . j a v  a  2  s .  com*/
            if (pkg.isDefaultPackage())
                return pkg.hasChildren();
            return !pkg.hasSubpackages() || pkg.hasChildren() || (pkg.getNonJavaResources().length > 0);
        } catch (JavaModelException e) {
            return false;
        }
    }

    return true;
}

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

License:Open Source License

/**
 * @param fastCodeContext/*from www . j av 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.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  www .  j a v a 2  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./* w  ww.  j  a  v a  2 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;
}