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

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

Introduction

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

Prototype

IJavaElement getParent();

Source Link

Document

Returns the element directly containing this element, or null if this element has no parent.

Usage

From source file:org.eclipse.recommenders.models.dependencies.rcp.EclipseDependencyListener.java

License:Open Source License

private Optional<IJavaProject> getIJavaProjectForPackageFragmentRoot(final IPackageFragmentRoot root) {
    IJavaElement parent = root.getParent();
    if (parent instanceof IJavaProject) {
        return fromNullable((IJavaProject) parent);
    }//w w  w .  j av  a2s  . c o m
    return absent();
}

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

License:Open Source License

/**
 * @param fastCodeContext/* www .j  a v a 2s. c  o m*/
 * @param member
 * @param createSimilarDescriptor
 * @param monitor
 * @return
 * @throws Exception
 */
public static void createSimilar(final FastCodeContext fastCodeContext, final IMember[] members,
        final CreateSimilarDescriptor createSimilarDescriptor, final IProgressMonitor monitor)
        throws Exception {

    final GlobalSettings globalSettings = getInstance();
    final Shell parentShell = MessageUtil.getParentShell();
    final Shell shell = parentShell == null ? new Shell() : parentShell;

    IPackageFragmentRoot packageFragmentRoot = null;
    String newpkg = EMPTY_STR, newcls = EMPTY_STR;
    String targetProject = null;
    final CreateSimilarDescriptorClass[] descriptorClasses = createSimilarDescriptor
            .getCreateSimilarDescUserChoice() == null
                    ? createSimilarDescriptor.getCreateSimilarDescriptorClasses()
                    : createSimilarDescriptor.getCreateSimilarDescUserChoice();
    for (final CreateSimilarDescriptorClass createSimilarDescriptorClass : descriptorClasses) {

        if (createSimilarDescriptorClass == null) {
            continue;
        }
        final boolean replaceName = createSimilarDescriptor.isReplaceName();
        String toName = createSimilarDescriptorClass.getToPattern();

        // final String classBody =
        // createSimilarDescriptorClass.getClassBody();
        IPackageFragment packageFragment = 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();
                      }
                   }
                }*/

                packageFragment = createSimilarDescriptorClass.getUserInputPackage();
                packageFragmentRoot = (IPackageFragmentRoot) packageFragment.getParent();
                newpkg = packageFragment.getElementName();
                newcls = replacePlaceHolders(toName, fastCodeContext.getPlaceHolders());
            } 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);
                newpkg = lastDotPos != -1 ? toName.substring(0, lastDotPos)
                        : fastCodeContext.getFromType().getPackageFragment().getElementName();
                newcls = lastDotPos != -1 ? toName.substring(lastDotPos + 1) : toName;
                packageFragment = packageFragmentRoot.getPackageFragment(newpkg);
            }
        }

        if (packageFragmentRoot == null || !packageFragmentRoot.exists()) {
            throw new Exception("Unable to find package fragment root for " + toName);
        }

        // fastCodeContext.addToPlaceHolders(toName, newcls);
        final boolean isImplClass = createSimilarDescriptorClass.getParentDescriptor() != null
                && createSimilarDescriptorClass
                        .getRelationTypeToParent() == RELATION_TYPE.RELATION_TYPE_IMPLEMENTS;

        if (isImplClass) {
            newcls += globalSettings.getImplExtension();
            if (!isEmpty(createSimilarDescriptorClass.getSubPackage())) {
                newpkg += "." + createSimilarDescriptorClass.getSubPackage();
                packageFragment = packageFragmentRoot.getPackageFragment(newpkg);
                if (packageFragment == null || !packageFragment.exists()) {
                    packageFragment = packageFragmentRoot.createPackageFragment(newpkg, false, monitor);
                }
            }
        }

        fastCodeContext.addToPlaceHolders(PACKAGE_NAME_STR, newpkg);
        fastCodeContext.addToPlaceHolders(CLASS_NAME_STR, newcls);
        if (createSimilarDescriptorClass.isFinalClass()) {
            fastCodeContext.addToPlaceHolders(CLASS_MODIFIER_STR, "final");
        }
        fastCodeContext.addToPlaceHolders(CLASS_INSTANCE_STR, createDefaultInstance(newcls));
        fastCodeContext.addToPlaceHolders(CLASS_TYPE_STR,
                createSimilarDescriptorClass.getClassType().value().toLowerCase());

        if (!fastCodeContext.getPlaceHolders().containsKey(KEYWORD_FROM_CLASS)
                && fastCodeContext.getFromType() != null) {
            fastCodeContext.addToPlaceHolders(KEYWORD_FROM_CLASS,
                    fastCodeContext.getFromType().getElementName());
            fastCodeContext.addToPlaceHolders(KEYWORD_FROM_INSTANCE,
                    createDefaultInstance(fastCodeContext.getFromType().getElementName()));
        }

        if (!fastCodeContext.getPlaceHolders().containsKey(KEYWORD_TO_CLASS)) {
            fastCodeContext.addToPlaceHolders(KEYWORD_TO_CLASS, newcls);
            fastCodeContext.addToPlaceHolders(KEYWORD_TO_PACKAGE, newpkg);
            fastCodeContext.addToPlaceHolders(KEYWORD_TO_FULL_CLASS, newpkg + DOT + newcls);
            fastCodeContext.addToPlaceHolders(KEYWORD_TO_INSTANCE, createDefaultInstance(newcls));
        } else if (isImplClass) {
            fastCodeContext.addToPlaceHolders(KEYWORD_TO_IMPL_PACKAGE, newpkg);
            fastCodeContext.addToPlaceHolders(KEYWORD_TO_IMPL_CLASS, newcls);
            fastCodeContext.addToPlaceHolders(KEYWORD_TO_FULL_IMPL_CLASS, newpkg + DOT + newcls);
        }

        if (replaceName && (packageFragment == null || !packageFragment.exists())) {
            throw new Exception("Fatal error : package must exist.");
        } else if (packageFragment == null || !packageFragment.exists()) {
            final File pkgObj = new File(packageFragmentRoot.getResource().getLocationURI());
            /*final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance();
            checkinCache.getFilesToCheckIn().add(new FastCodeFileForCheckin(INITIATED, pkgObj.getAbsolutePath()));*/
            addOrUpdateFileStatusInCache(pkgObj);

            packageFragment = packageFragmentRoot.createPackageFragment(newpkg, false, monitor);
        }

        ICompilationUnit compilationUnit = packageFragment.getCompilationUnit(newcls + DOT + JAVA_EXTENSION);
        boolean isNew = false;
        final CompUnitBuilder compUnitBuilder = new SimilarCompUnitBuilder();
        if (compilationUnit == null || !compilationUnit.exists()) {
            fastCodeConsole.writeToConsole("Creating class " + newcls);
            // compilationUnit = createCompUnit(packageFragment,
            // fastCodeContext, createSimilarDescriptorClass, newcls);
            final String prjURI = packageFragment.getResource().getLocationURI().toString();
            final String path = prjURI.substring(prjURI.indexOf(COLON) + 1);
            final File newFileObj = new File(path + FORWARD_SLASH + newcls + DOT + JAVA_EXTENSION);
            final FastCodeCheckinCache checkinCache = FastCodeCheckinCache.getInstance();
            checkinCache.getFilesToCheckIn()
                    .add(new FastCodeFileForCheckin(INITIATED, newFileObj.getAbsolutePath()));

            compilationUnit = compUnitBuilder.buildCompUnit(packageFragment, fastCodeContext,
                    createSimilarDescriptorClass, newcls, fastCodeConsole);
            isNew = true;
        } else {
            if (!compilationUnit.getResource().isSynchronized(0)) {
                throw new Exception(compilationUnit.getElementName()
                        + " is not Synchronized, please refresh and try again.");
            }
            fastCodeConsole.writeToConsole("Class  " + newcls + " exists already.");
        }
        fastCodeContext.addCompilationUnitToRegsistry(createSimilarDescriptorClass, compilationUnit);

        compilationUnit.becomeWorkingCopy(monitor);
        fastCodeContext.addResource(new FastCodeResource(compilationUnit.getResource(), isNew));

        monitor.subTask("Creating details for " + compilationUnit.findPrimaryType().getFullyQualifiedName());

        try {
            IType pType = compilationUnit.findPrimaryType();
            int tries = 0;
            // hack because findPrimaryType is not available immediately
            // sometimes.
            while (isNew && (tries++ < MAX_TRY || pType == null || !pType.exists())) {
                pType = compilationUnit.findPrimaryType();
                Thread.sleep(100);
            }
            if (pType == null || !pType.exists()) {
                throw new Exception("Unknown exception occured, please try it again.");
            }

            createNewTypeDetails(fastCodeContext, pType, members, createSimilarDescriptor,
                    createSimilarDescriptorClass, monitor);
            if (globalSettings.isAutoSave()) {
                compilationUnit.commitWorkingCopy(false, monitor);
            }
        } finally {
            compilationUnit.discardWorkingCopy();
        }
    }

    // monitor.subTask("Creating configuration for " +
    // cu.findPrimaryType().getFullyQualifiedName());

    boolean createConfig = false;
    if (createSimilarDescriptor.getNoOfInputs() > 1) {
        return;
    }
    for (final CreateSimilarDescriptorConfig descriptorConfig : createSimilarDescriptor
            .getDescriptorConfigParts()) {
        if (descriptorConfig != null) {
            createConfig = true;
        }
    }

    if (!createConfig) {
        return;
    }

    boolean showFieldsDialog = true;
    final List<FastCodeField> fastCodeFields = new ArrayList<FastCodeField>();
    final Map<String, List<FastCodeField>> fieldsMap = new HashMap<String, List<FastCodeField>>();
    fieldsMap.put("fields", fastCodeFields);

    IType typeForConfiguration = null;
    for (final CreateSimilarDescriptorClass createSimilarDescriptorClass : descriptorClasses) {
        final ICompilationUnit compilationUnit = fastCodeContext
                .getCompilationUnitRegsistry(createSimilarDescriptorClass);
        if (compilationUnit.findPrimaryType().isClass()) {
            typeForConfiguration = compilationUnit.findPrimaryType();
            break;
        }
    }

    for (final CreateSimilarDescriptorConfig descriptorConfig : createSimilarDescriptor
            .getDescriptorConfigParts()) {

        if (descriptorConfig == null) {
            continue;
        }

        final IField[] fields = getFieldsOfType(typeForConfiguration);
        if (showFieldsDialog && fields != null && fields.length > 0) {
            final FieldSelectionDialog fieldSelectionDialog = new FieldSelectionDialog(shell,
                    "Fields for configuration",
                    "Choose the fields for configuration " + descriptorConfig.getConfigType(), fields, true);

            if (fieldSelectionDialog.open() != CANCEL) {
                final Object[] results = fieldSelectionDialog.getResult();
                for (final Object result : results) {
                    final IField field = (IField) result;
                    fastCodeFields.add(new FastCodeField(field, field.getElementName()));
                }
                showFieldsDialog = false; // get the fields first time.
            }
        }

        // String fileName = descriptorConfig.getConfigFileName();
        // final String fileName =
        // replacePlaceHolders(descriptorConfig.getConfigFileName(),
        // fastCodeContext.getPlaceHolders());

        createConfigurations(fastCodeContext, descriptorConfig, targetProject, fieldsMap);
    }
}

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

License:Open Source License

/**
 *
 * @param project// www  . j a va2  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 fastCodeContext/*from w w  w.jav a  2s.  co 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.maven.ide.eclipse.actions.DownloadSourcesAction.java

License:Apache License

public void run(IAction action) {
    IPackageFragmentRoot root = (IPackageFragmentRoot) this.selection.getFirstElement();

    IJavaElement parent = root.getParent();
    if (parent instanceof IJavaProject) {
        IJavaProject project = (IJavaProject) parent;
        try {//from   ww  w .  j av  a 2 s  . co  m
            IClasspathEntry classpathEntry = root.getRawClasspathEntry();
            IClasspathContainer classpathContainer = JavaCore.getClasspathContainer(classpathEntry.getPath(),
                    project);
            IClasspathEntry[] classpathEntries = classpathContainer.getClasspathEntries();
            for (int i = 0; i < classpathEntries.length; i++) {
                IClasspathEntry entry = classpathEntries[i];
                if (entry.getPath().equals(root.getPath())) {
                    String actionDefinitionId = action.getActionDefinitionId();
                    String id = action.getId();
                    System.err.println("### DownloadSourcesAction.run()");

                }
            }
        } catch (JavaModelException ex) {
            //
        }
    }
}

From source file:org.nuxeo.ide.sdk.deploy.Deployment.java

License:Open Source License

protected void copyCompilationUnit(Set<String> commands, IPackageFragmentRoot root, ICompilationUnit unit)
        throws JavaModelException, CoreException {
    IJavaProject java = (IJavaProject) root.getParent();
    String type = unitOutput(unit);
    IFolder nxdataFolder = nxdataFolder(java).getFolder(type);
    IProject project = java.getProject();
    IPath outputLocation = java.getOutputLocation();
    IPath path = unit.getPath().removeFirstSegments(root.getPath().segmentCount()).removeLastSegments(1);
    path = path.append(//w  w w.  j ava  2  s  . c o m
            org.eclipse.jdt.internal.core.util.Util.getNameWithoutJavaLikeExtension(unit.getElementName())
                    + ".class"); //$NON-NLS-1$
    IContainer container = (IContainer) project.getWorkspace().getRoot().findMember(outputLocation);
    IResource dotClassMember = container.findMember(path);
    if (dotClassMember == null) {
        SDKPlugin.log(IStatus.ERROR,
                "Cannot find binary class " + path + " in project " + java.getElementName());
        return;
    }

    IFile outputFile = nxdataFolder.getFile(path);
    mkdirs((IFolder) outputFile.getParent(), new NullProgressMonitor());
    dotClassMember.copy(outputFile.getFullPath(), IResource.HIDDEN | IResource.DERIVED,
            new NullProgressMonitor());
    commands.add(type + ":" + nxdataFolder.getLocation().toOSString());
}

From source file:org.springframework.ide.eclipse.beans.ui.properties.NonJavaResourceContentProvider.java

License:Open Source License

protected Object skipProjectPackageFragmentRoot(IPackageFragmentRoot root) {
    if (isProjectPackageFragmentRoot(root)) {
        return root.getParent();
    }//from  w  w  w.  j  a v  a  2s  .c  o  m
    return root;
}

From source file:org.switchyard.tools.ui.wizards.NewWSDLFileWizard.java

License:Open Source License

@Override
public boolean performFinish() {
    if (_filePage != null) {
        _fNewFile = _filePage.createNewFile();
        if (_fNewFile == null) {
            return false;
        }/*  www .  ja  va 2 s .c om*/

        String charSet = "UTF-8"; //$NON-NLS-1$
        String wsdlPrefix = "wsdl"; //$NON-NLS-1$
        Vector<?> namespaces = _optionsPage.getNamespaceInfo();

        String prefix = _optionsPage.getPrefix();
        String definitionName = _optionsPage.getDefinitionName();

        URI uri2 = URI.createPlatformResourceURI(_fNewFile.getFullPath().toOSString(), false);
        ResourceSet resourceSet = new ResourceSetImpl();
        WSDLResourceImpl resource = (WSDLResourceImpl) resourceSet.createResource(URI.createURI("*.wsdl")); //$NON-NLS-1$
        resource.setURI(uri2);

        WSDLFactoryImpl factory = new WSDLFactoryImpl();
        DefinitionImpl definition = (DefinitionImpl) factory.createDefinition();
        resource.getContents().add(definition);

        definition.setTargetNamespace(_optionsPage.getTargetNamespace());
        definition.setLocation(_fNewFile.getLocation().toString());
        definition.setEncoding(charSet);
        definition.setQName(new QName(wsdlPrefix, definitionName));
        definition.addNamespace(prefix, _optionsPage.getTargetNamespace());

        for (int i = 0; i < namespaces.size(); i++) {
            NamespaceInfo info = (NamespaceInfo) namespaces.get(i);

            if (info.prefix.length() > 0) {
                definition.addNamespace(info.prefix, info.uri);
            } else {
                definition.addNamespace(null, info.uri);
            }
        }

        definition.updateElement(true);
        try {
            if (_optionsPage.getCreateSkeletonBoolean()) {
                if (_optionsPage.isSoapDocLiteralProtocol()) {
                    CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.PART_INFO_ELEMENT_DECLARATION;
                } else {
                    CreateWSDLElementHelper.PART_TYPE_OR_DEFINITION = CreateWSDLElementHelper.PART_INFO_TYPE_DEFINITION;
                }

                CreateWSDLElementHelper.serviceName = definitionName;

                // use protocol name (as opposed to protocol label) in port
                // name
                String protocolName = new String();
                String protocol = _optionsPage.getProtocol();
                ContentGeneratorUIExtensionRegistry registry = WSDLEditorPlugin.getInstance()
                        .getContentGeneratorUIExtensionRegistry();
                ContentGeneratorUIExtension extension = registry.getExtensionForLabel(protocol);
                if (extension != null) {
                    protocolName = extension.getName();
                }
                CreateWSDLElementHelper.portName = definitionName + protocolName;
                createPortType(definitionName, wsdlPrefix, prefix, charSet, factory);

                Service service = CreateWSDLElementHelper.createService(definition);

                // Generate Binding
                Iterator<?> bindingIt = definition.getEBindings().iterator();
                Binding binding = null;
                if (bindingIt.hasNext()) {
                    binding = (Binding) bindingIt.next();
                }

                _generator.setDefinition(definition);
                _generator.setBinding(binding);
                Port port = (Port) service.getEPorts().iterator().next();
                _generator.setName(ComponentReferenceUtil.getName(port.getEBinding()));
                _generator.setRefName(ComponentReferenceUtil.getPortTypeReference(port.getEBinding()));
                _generator.setOverwrite(true);
                _generator.generateBinding();
                _generator.generatePortContent();
            }
            resource.save(null);
        } catch (Exception e) {
            System.out.println("\nCould not write new WSDL file in WSDL Wizard: " + e); //$NON-NLS-1$
        }

        if (getSelection().getFirstElement() instanceof IPackageFragmentRoot) {
            IPackageFragmentRoot root = (IPackageFragmentRoot) getSelection().getFirstElement();
            IResource pkgresource = root.getResource();
            if (pkgresource == null) {
                IJavaElement element = root.getParent();
                pkgresource = element.getResource();
            }
            if (_fNewFile instanceof IFile) {
                pkgresource = ((IFile) _fNewFile).getParent();
            }
            if (pkgresource instanceof IFolder) {
                IFolder folder = (IFolder) pkgresource;
                IFolder parent = (IFolder) folder.getParent();
                _createdFilePath = _fNewFile.getProjectRelativePath()
                        .makeRelativeTo(parent.getProjectRelativePath()).toPortableString();
            }
        } else {
            _createdFilePath = _fNewFile.getProjectRelativePath().toPortableString();
        }

        if (_fOpenEditorWhenFinished) {
            openEditor(_fNewFile);
        }

        return true;
    }
    return false;
}

From source file:qwickie.hyperlink.WicketHyperlink.java

License:Apache License

private void createJavaFile(final IResource resource) {
    Assert.isNotNull(resource);// w  w w.j a  va 2s . c  om

    final OpenNewClassWizardAction action = new OpenNewClassWizardAction();
    final NewClassWizardPage ncwp = new NewClassWizardPage();

    ncwp.setTypeName(resource.getName().replaceAll("\\.html", ""), true);

    final IJavaProject javaProject = JavaCore.create(resource.getProject());
    IPackageFragmentRoot root = null;
    try {
        final IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                root = roots[i];
                break;
            }
        }

        ncwp.setPackageFragmentRoot(root, true);

    } catch (final JavaModelException e) {
    }
    final String os = root.getParent().getPath().toPortableString();
    final String fp = root.getResource().getFullPath().toPortableString().replaceFirst(os, "").substring(1);
    final String ps = resource.getProjectRelativePath().toPortableString().replaceFirst(fp, "");
    String pn = ps.replaceFirst(resource.getName(), "").substring(1).replaceAll("/", ".");
    pn = pn.substring(0, pn.length() - 1);

    ncwp.setPackageFragment(root.getPackageFragment(pn), true);

    ncwp.setSuperClass("org.apache.wicket.markup.html.WebPage", openJavaFile());

    action.setConfiguredWizardPage(ncwp);
    action.setOpenEditorOnFinish(true);
    action.run();
}