PageRenderTime 35ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/eclipse-plugin/plugins/com.google.test.metric.eclipse.core/src/main/java/com/google/test/metric/eclipse/internal/util/JavaProjectHelper.java

http://testability-explorer.googlecode.com/
Java | 103 lines | 73 code | 9 blank | 21 comment | 12 complexity | 838939432e4743b4e91bbd2713c63d50 MD5 | raw file
Possible License(s): Apache-2.0
  1. /*
  2. * Copyright 2009 Google Inc.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License"); you may not
  5. * use this file except in compliance with the License. You may obtain a copy of
  6. * the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  12. * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  13. * License for the specific language governing permissions and limitations under
  14. * the License.
  15. */
  16. package com.google.test.metric.eclipse.internal.util;
  17. import org.eclipse.core.resources.IContainer;
  18. import org.eclipse.core.resources.IProject;
  19. import org.eclipse.core.resources.IResource;
  20. import org.eclipse.core.resources.IWorkspaceRoot;
  21. import org.eclipse.core.resources.ResourcesPlugin;
  22. import org.eclipse.core.runtime.CoreException;
  23. import org.eclipse.core.runtime.IPath;
  24. import org.eclipse.jdt.core.IJavaModel;
  25. import org.eclipse.jdt.core.IJavaProject;
  26. import org.eclipse.jdt.core.IPackageFragmentRoot;
  27. import org.eclipse.jdt.core.JavaCore;
  28. import org.eclipse.jdt.core.JavaModelException;
  29. import java.util.ArrayList;
  30. import java.util.List;
  31. /**
  32. * Provides utility methods for accessing Java projects.
  33. *
  34. * @author klundberg@google.com (Karin Lundberg)
  35. *
  36. */
  37. public class JavaProjectHelper {
  38. private final Logger logger = new Logger();
  39. public IJavaProject[] getJavaProjects() {
  40. IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
  41. IJavaModel javaModel = JavaCore.create(workspaceRoot);
  42. IJavaProject[] javaProjects = null;
  43. try {
  44. javaProjects = javaModel.getJavaProjects();
  45. } catch (JavaModelException e) {
  46. logger.logException("Error getting Java Projects", e);
  47. }
  48. return javaProjects;
  49. }
  50. public IJavaProject getJavaProject(String projectName) {
  51. if (projectName != null && projectName.length() > 0) {
  52. IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
  53. IJavaModel javaModel = JavaCore.create(workspaceRoot);
  54. return javaModel.getJavaProject(projectName);
  55. } else {
  56. return null;
  57. }
  58. }
  59. public String getProjectLocation(IJavaProject javaProject) {
  60. IProject project = javaProject.getProject();
  61. IPath rawLocation = project.getRawLocation();
  62. IPath projectLocation;
  63. if (rawLocation != null) {
  64. projectLocation = rawLocation.removeLastSegments(1);
  65. } else {
  66. projectLocation = project.getParent().getLocation();
  67. }
  68. return projectLocation.toOSString();
  69. }
  70. public List<String> getAllJavaPackages(IJavaProject javaProject) throws JavaModelException,
  71. CoreException {
  72. List<String> allJavaPackages = new ArrayList<String>();
  73. IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
  74. for (IPackageFragmentRoot root : roots) {
  75. if (!root.isArchive()) {
  76. IResource rootResource = root.getCorrespondingResource();
  77. String rootURL = rootResource.getFullPath().toOSString();
  78. rootResource.accept(new JavaPackageVisitor(allJavaPackages, rootURL), IContainer.NONE);
  79. }
  80. }
  81. return allJavaPackages;
  82. }
  83. public List<IPackageFragmentRoot> getAllJavaPackageFragmentRoots(IJavaProject javaProject)
  84. throws JavaModelException, CoreException {
  85. List<IPackageFragmentRoot> allJavaPackageFragmentRoot = new ArrayList<IPackageFragmentRoot>();
  86. IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
  87. for (IPackageFragmentRoot root : roots) {
  88. if (!root.isArchive() && !root.getElementName().equals("")) {
  89. allJavaPackageFragmentRoot.add(root);
  90. }
  91. }
  92. return allJavaPackageFragmentRoot;
  93. }
  94. }