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

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

Introduction

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

Prototype

IPackageFragment getPackageFragment(String packageName);

Source Link

Document

Returns the package fragment with the given package name.

Usage

From source file:org.eclipse.wb.tests.designer.core.model.util.FactoryCreateActionTest.java

License:Open Source License

/**
 * No parameters, use same class./*from   w ww  .  ja v  a  2  s.c  o m*/
 */
public void test_generate_sameFactoryClass() throws Exception {
    // parse
    ContainerInfo panel = parseContainer("public class Test extends JPanel {", "  public Test() {",
            "    JButton button = new JButton('text');", "    button.setSelected(true);",
            "    button.setAutoscrolls(true);", "    add(button);", "  }", "}");
    ComponentInfo button = panel.getChildrenComponents().get(0);
    // do generate
    {
        action = new FactoryCreateAction(button);
        IJavaProject javaProject = m_testProject.getJavaProject();
        IProject project = m_testProject.getProject();
        IPackageFragmentRoot srcFolder = javaProject.getPackageFragmentRoot(project.getFolder("src"));
        IPackageFragment testPackage = srcFolder.getPackageFragment("test");
        ReflectionUtils.setField(action, "m_sourceFolder", srcFolder);
        ReflectionUtils.setField(action, "m_package", testPackage);
        ReflectionUtils.setField(action, "m_className", "Test");
        ReflectionUtils.setField(action, "m_methodName", "createButton");
        // configure creation/invocations
        {
            String errorMessage;
            errorMessage = generate_configureInvocations(button, new int[] {}, new String[] {}, new int[][] {});
            assertNull(errorMessage);
        }
        // generate factory
        ReflectionUtils.invokeMethod2(action, "generate", boolean.class, true);
    }
    m_getSource_ignoreSpacesCheck = true;
    assertEditor("public class Test extends JPanel {", "  public Test() {",
            "    JButton button = createButton();", "    button.setSelected(true);",
            "    button.setAutoscrolls(true);", "    add(button);", "  }", "  /**", "   * @wbp.factory",
            "   */", "  public static JButton createButton() {", "    JButton button = new JButton('text');",
            "    return button;", "  }", "}");
}

From source file:org.eclipse.wb.tests.designer.core.model.util.FactoryCreateActionTest.java

License:Open Source License

/**
 * Configures {@link #action} with default package/class/method.
 *//*from w  ww. jav  a 2 s  . c  o  m*/
private void generate_configureDefaultTarget() throws Exception {
    IJavaProject javaProject = m_testProject.getJavaProject();
    IProject project = m_testProject.getProject();
    IPackageFragmentRoot srcFolder = javaProject.getPackageFragmentRoot(project.getFolder("src"));
    IPackageFragment testPackage = srcFolder.getPackageFragment("test");
    ReflectionUtils.setField(action, "m_sourceFolder", srcFolder);
    ReflectionUtils.setField(action, "m_package", testPackage);
    ReflectionUtils.setField(action, "m_className", "StaticFactory");
    ReflectionUtils.setField(action, "m_methodName", "createComponent");
}

From source file:org.eclipse.wb.tests.designer.core.TestProject.java

License:Open Source License

/**
 * @return the {@link IPackageFragment} with given name, in default source folder. Creates it if
 *         does not exist.//  w w w  .  java 2  s.co m
 */
public IPackageFragment getPackage(String name) throws CoreException {
    IPackageFragmentRoot sourceFolder = getSourceFolder();
    IPackageFragment packageFragment = sourceFolder.getPackageFragment(name);
    if (packageFragment == null || !packageFragment.exists()) {
        packageFragment = sourceFolder.createPackageFragment(name, false, null);
    }
    return packageFragment;
}

From source file:org.eclipse.wst.xml.core.internal.contentmodel.tapestry.travelpackage.TapestryClassLoader.java

License:Open Source License

public List<String> loadParametersFromParentClass(IPackageFragmentRoot root, String classFileName) {
    List<String> list = new ArrayList<String>();
    if (classFileName.indexOf('/') < 0)
        return list;
    String packageName = classFileName.substring(0, classFileName.lastIndexOf('/')).replace('/', '.');
    String className = classFileName.substring(classFileName.lastIndexOf('/') + 1) + ".class";
    try {// w  ww .j  av a2 s.  c  o m
        PackageFragment packInstance = (PackageFragment) root.getPackageFragment(packageName);
        for (Object packo : packInstance.getChildrenOfType(IJavaElement.CLASS_FILE)) {
            ClassFile packi = (ClassFile) packo;
            if (packi.getElementName().equals(className)) {
                ClassFileReader reader = null;
                try {
                    reader = new ClassFileReader(packi.getBytes(), null);
                } catch (ClassFormatException e) {
                    e.printStackTrace();
                }

                if (reader.getFields() != null)
                    for (IBinaryField field : reader.getFields()) {
                        boolean parameter = false;
                        if (field.getAnnotations() == null)
                            continue;
                        for (IBinaryAnnotation anno : field.getAnnotations()) {
                            if (String.valueOf(anno.getTypeName()).endsWith("/Parameter;")) {
                                parameter = true;
                                break;
                            }
                        }
                        if (parameter) {
                            list.add(String.valueOf(field.getName()));
                        }
                    }
                String parentClassName = String.valueOf(reader.getSuperclassName());
                if (parentClassName != null && !parentClassName.isEmpty()
                        && !parentClassName.equals("java/lang/Object")) {
                    list.addAll(loadParametersFromParentClass(root, parentClassName));
                }
                return list;
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }

    return list;
}

From source file:org.eclipse.wst.xml.search.editor.internal.contentassist.JavaCompletionUtils.java

License:Open Source License

private static IPackageFragment getPackageFragment(IJavaProject project, String prefix)
        throws JavaModelException {
    int dot = prefix.lastIndexOf('.');
    if (dot > -1) {
        String packageName = prefix.substring(0, dot);
        IPackageFragmentRoot aipackagefragmentroot1[];
        int l = (aipackagefragmentroot1 = project.getPackageFragmentRoots()).length;
        for (int j = 0; j < l; j++) {
            IPackageFragmentRoot root = aipackagefragmentroot1[j];
            IPackageFragment p = root.getPackageFragment(packageName);
            if (p != null && p.exists())
                return p;
        }/*from   ww w.  jav a 2s  . c om*/

        IPackageFragment packages[] = project.getPackageFragments();
        IPackageFragment aipackagefragment[];
        int j1 = (aipackagefragment = packages).length;
        for (int i1 = 0; i1 < j1; i1++) {
            IPackageFragment p = aipackagefragment[i1];
            if (p.getElementName().equals(packageName))
                return p;
        }

    } else {
        IPackageFragmentRoot aipackagefragmentroot[];
        int k = (aipackagefragmentroot = project.getAllPackageFragmentRoots()).length;
        for (int i = 0; i < k; i++) {
            IPackageFragmentRoot p = aipackagefragmentroot[i];
            if (p.getKind() == 1)
                return p.getPackageFragment("");
        }

    }
    return project.getPackageFragments()[0];
}

From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java

License:Open Source License

public static IJarEntryResource getJavaResourceFileFromBinary(IProject project, String jarNamePattern,
        String packageName, String fileName) {
    IJavaProject javaProject = getJavaProject(project);
    if (javaProject != null) {
        try {/*  ww w.ja v  a  2 s  .co  m*/
            IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
            IPackageFragmentRoot root = null;
            for (int i = 0; i < roots.length; i++) {
                root = roots[i];
                if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
                    if (StringUtils.isEmpty(jarNamePattern)
                            || root.getElementName().startsWith(jarNamePattern)) {
                        Object[] nonJavaResources = null;
                        if (packageName != null) {
                            IPackageFragment fragment = root.getPackageFragment(packageName);
                            if (fragment != null) {
                                nonJavaResources = fragment.getNonJavaResources();
                            }
                        } else {
                            nonJavaResources = root.getNonJavaResources();
                        }
                        if (nonJavaResources != null) {
                            Object nonJavaResource = null;
                            for (int j = 0; j < nonJavaResources.length; j++) {
                                nonJavaResource = nonJavaResources[j];
                                if (nonJavaResource instanceof IJarEntryResource) {
                                    IJarEntryResource r = (IJarEntryResource) nonJavaResource;
                                    if (r.isFile() && fileName.equals(r.getName())) {
                                        return r;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '"))
                    .append(project.getName()).append("'").toString(), e);
        }
    }
    return null;
}

From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java

License:Open Source License

public static IJarEntryResource[] getJavaResourcesFileFromBinary(IProject project, String jarNamePattern,
        String packageName, String fileName) {
    Collection<IJarEntryResource> files = new ArrayList<IJarEntryResource>();
    IJavaProject javaProject = getJavaProject(project);
    if (javaProject != null) {
        try {/* ww  w  . j  a  v  a 2  s.c  o  m*/
            IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
            IPackageFragmentRoot root = null;
            for (int i = 0; i < roots.length; i++) {
                root = roots[i];
                if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
                    if (StringUtils.isEmpty(jarNamePattern) || root.getElementName().contains(jarNamePattern)) {
                        Object[] nonJavaResources = null;
                        if (packageName != null) {
                            IPackageFragment fragment = root.getPackageFragment(packageName);
                            if (fragment != null) {
                                nonJavaResources = fragment.getNonJavaResources();
                            }
                        } else {
                            nonJavaResources = root.getNonJavaResources();
                        }
                        if (nonJavaResources != null) {
                            Object nonJavaResource = null;
                            for (int j = 0; j < nonJavaResources.length; j++) {
                                nonJavaResource = nonJavaResources[j];
                                if (nonJavaResource instanceof IJarEntryResource) {
                                    IJarEntryResource r = (IJarEntryResource) nonJavaResource;
                                    if (r.isFile() && r.getName().contains(fileName)) {
                                        files.add(r);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '"))
                    .append(project.getName()).append("'").toString(), e);
        }
    }
    return files.toArray(new IJarEntryResource[files.size()]);
}

From source file:org.eclipse.wst.xml.ui.internal.contentassist.tapestry.TapestryRootComponentsProposalComputer.java

License:Open Source License

public IPackageFragment getTapestryRootComponentsPackage(IProject project, String packageName) {
    IPackageFragmentRoot[] roots2;//from ww  w  .  jav  a 2s . com
    try {
        roots2 = JavaCore.create(project).getAllPackageFragmentRoots();
        for (IPackageFragmentRoot root : roots2) {
            if (!root.isArchive()) {
                IPackageFragment packInstance = root.getPackageFragment(packageName);
                if (packInstance != null)
                    return packInstance;
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return null;
}

From source file:org.eclipse.wst.xml.ui.internal.contentassist.tapestry.TapestryRootComponentsProposalComputer.java

License:Open Source License

/**
 * Get custom component attribute templates
 * /*ww  w.j  a v a  2 s  .com*/
 * @param project
 * @param contextTypeId
 * @param nodeName
 * @param tapestryClassLoader
 * @return
 */
public List<Template> getCustomComponentsAttributes(IProject project, String contextTypeId, String nodeName,
        TapestryClassLoader tapestryClassLoader) {
    components.clear();
    String prefix = nodeName.substring(0, nodeName.indexOf(':'));
    try {
        final IFile res = project.getFile(TapestryContants.CUSTOM_COMPONENTS_FILE);
        if (res == null || prefix == null)
            return components;
        List<ComponentPackage> packageList = loadCustomComponentsPackageListWithPrefix(res, prefix);
        IPackageFragmentRoot[] roots = JavaCore.create(project).getAllPackageFragmentRoots();
        for (ComponentPackage cp : packageList) {
            for (IPackageFragmentRoot root : roots) {
                if (cp.isArchive() == root.isArchive() && cp.getFragmentRoot().equals(root.getElementName())) {
                    IPackageFragment packInstance = root.getPackageFragment(cp.getPath());
                    if (!root.isArchive()) {
                        //If current custom component is in source directory
                        if (packInstance != null) {
                            IJavaElement[] elements = packInstance.getChildren();
                            for (IJavaElement ele : elements) {
                                if (ele.getElementType() == IJavaElement.COMPILATION_UNIT
                                        && ele.getElementName().endsWith(".java")) {
                                    String name = ele.getElementName().substring(0,
                                            ele.getElementName().indexOf('.'));
                                    if ((prefix + ":" + name).toLowerCase().equals(nodeName)) {
                                        goThroughClass((ICompilationUnit) ele, contextTypeId);
                                        return components;
                                    }
                                }
                            }
                        }
                    } else if (packInstance instanceof PackageFragment) {
                        //Current custom component is in jar files
                        for (Object packo : ((PackageFragment) packInstance)
                                .getChildrenOfType(IJavaElement.CLASS_FILE)) {
                            ClassFile packi = (ClassFile) packo;
                            String className = packi.getElementName().substring(0,
                                    packi.getElementName().indexOf('.'));
                            if (className.indexOf('$') < 0
                                    && (prefix + ":" + className.toLowerCase()).equals(nodeName)) {
                                TapestryCoreComponents component = null;
                                try {
                                    component = tapestryClassLoader.loadComponentAttributesFromClassFile(root,
                                            prefix, packi);
                                } catch (ClassFormatException e) {
                                    e.printStackTrace();
                                }
                                if (component != null) {
                                    for (String paramName : component.getPamameters()) {
                                        Template template = new Template(paramName,
                                                "add attribute " + paramName, contextTypeId,
                                                buildAttributeInsertCode(paramName), true);
                                        components.add(template);
                                    }
                                    return components;
                                }
                            }
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }

    return null;
}

From source file:org.eclipse.wst.xml.ui.internal.contentassist.tapestry.TapestryRootComponentsProposalComputer.java

License:Open Source License

private List<String> getCustomComponentsNameList(IPackageFragmentRoot[] roots, ComponentPackage cp) {
    List<String> componentNameList = new ArrayList<String>();
    try {//from w ww.  ja v a  2 s  . c o  m
        for (IPackageFragmentRoot root : roots) {
            if (root instanceof JarPackageFragmentRoot == cp.isArchive()
                    && root.getElementName().equals(cp.getFragmentRoot())) {
                if (!root.isArchive()) {
                    // Load custom components from source directory
                    IPackageFragment packInstance = root.getPackageFragment(cp.getPath());
                    if (packInstance != null) {
                        IJavaElement[] elements = packInstance.getChildren();
                        for (IJavaElement ele : elements) {
                            if (ele.getElementType() == IJavaElement.COMPILATION_UNIT
                                    && ele.getElementName().endsWith(".java")) {
                                String name = ele.getElementName().substring(0,
                                        ele.getElementName().indexOf('.'));
                                componentNameList.add(name);
                            }
                        }
                    }
                } else {
                    // Load custom components from jar files
                    for (IJavaElement pack : root.getChildren()) {
                        if (pack != null && pack instanceof PackageFragment
                                && pack.getElementName().equals(cp.getPath())) {
                            for (Object packo : ((PackageFragment) pack)
                                    .getChildrenOfType(IJavaElement.CLASS_FILE)) {
                                ClassFile packi = (ClassFile) packo;
                                String itemName = packi.getElementName();
                                if (itemName.indexOf('$') < 0 && itemName.endsWith(".class"))
                                    componentNameList.add(itemName.substring(0, itemName.length() - 6));
                            }
                            break;
                        }
                    }
                }
                return componentNameList;
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return componentNameList;
}