/eclipse-plugin/plugins/com.google.test.metric.eclipse.core/src/main/java/com/google/test/metric/eclipse/internal/util/JavaProjectHelper.java
Java | 103 lines | 73 code | 9 blank | 21 comment | 12 complexity | 838939432e4743b4e91bbd2713c63d50 MD5 | raw file
Possible License(s): Apache-2.0
- /*
- * Copyright 2009 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
- package com.google.test.metric.eclipse.internal.util;
- import org.eclipse.core.resources.IContainer;
- import org.eclipse.core.resources.IProject;
- import org.eclipse.core.resources.IResource;
- import org.eclipse.core.resources.IWorkspaceRoot;
- import org.eclipse.core.resources.ResourcesPlugin;
- import org.eclipse.core.runtime.CoreException;
- import org.eclipse.core.runtime.IPath;
- import org.eclipse.jdt.core.IJavaModel;
- import org.eclipse.jdt.core.IJavaProject;
- import org.eclipse.jdt.core.IPackageFragmentRoot;
- import org.eclipse.jdt.core.JavaCore;
- import org.eclipse.jdt.core.JavaModelException;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * Provides utility methods for accessing Java projects.
- *
- * @author klundberg@google.com (Karin Lundberg)
- *
- */
- public class JavaProjectHelper {
- private final Logger logger = new Logger();
- public IJavaProject[] getJavaProjects() {
- IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
- IJavaModel javaModel = JavaCore.create(workspaceRoot);
- IJavaProject[] javaProjects = null;
- try {
- javaProjects = javaModel.getJavaProjects();
- } catch (JavaModelException e) {
- logger.logException("Error getting Java Projects", e);
- }
- return javaProjects;
- }
- public IJavaProject getJavaProject(String projectName) {
- if (projectName != null && projectName.length() > 0) {
- IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
- IJavaModel javaModel = JavaCore.create(workspaceRoot);
- return javaModel.getJavaProject(projectName);
- } else {
- return null;
- }
- }
- public String getProjectLocation(IJavaProject javaProject) {
- IProject project = javaProject.getProject();
- IPath rawLocation = project.getRawLocation();
- IPath projectLocation;
- if (rawLocation != null) {
- projectLocation = rawLocation.removeLastSegments(1);
- } else {
- projectLocation = project.getParent().getLocation();
- }
- return projectLocation.toOSString();
- }
- public List<String> getAllJavaPackages(IJavaProject javaProject) throws JavaModelException,
- CoreException {
- List<String> allJavaPackages = new ArrayList<String>();
- IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
- for (IPackageFragmentRoot root : roots) {
- if (!root.isArchive()) {
- IResource rootResource = root.getCorrespondingResource();
- String rootURL = rootResource.getFullPath().toOSString();
- rootResource.accept(new JavaPackageVisitor(allJavaPackages, rootURL), IContainer.NONE);
- }
- }
- return allJavaPackages;
- }
-
- public List<IPackageFragmentRoot> getAllJavaPackageFragmentRoots(IJavaProject javaProject)
- throws JavaModelException, CoreException {
- List<IPackageFragmentRoot> allJavaPackageFragmentRoot = new ArrayList<IPackageFragmentRoot>();
- IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
- for (IPackageFragmentRoot root : roots) {
- if (!root.isArchive() && !root.getElementName().equals("")) {
- allJavaPackageFragmentRoot.add(root);
- }
- }
- return allJavaPackageFragmentRoot;
- }
- }