| /******************************************************************************* |
| * Copyright (c) 2009 Red Hat and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Red Hat - Initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.jst.common.internal.modulecore.util; |
| |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.wst.common.componentcore.resources.IVirtualReference; |
| |
| /** |
| * This is internal. Please don't use it unless you're prepared |
| * for it to change drastically at any random time. |
| * |
| * This interface represents a utility to help discover the heirarchy |
| * of java-related components, and assist in manifest management. |
| */ |
| public interface IJavaComponentDiscerner { |
| /** |
| * Return a list of parent projects, projects which already *do* have |
| * a project reference to this child project |
| * @param child |
| * @return |
| */ |
| public IProject[] findParentProjects(IProject child); |
| |
| /** |
| * All returned manifest entries should have a runtime path and archiveName |
| * which, when combined, will be suitable for export to a child's |
| * manifest file. If a reference is in a folder that does not |
| * require it to be present in the manifest.mf classpath, it |
| * should *NOT* be returned here. |
| * |
| * All references should have a getRuntimePath() + getArchiveName() that |
| * resolves to the value that should be in the manifest.mf classpath section. |
| * |
| * Any reference *already* in the manifest should *not* be returned here |
| * |
| * @param parentProject |
| * @param childProject |
| * @return |
| */ |
| public IVirtualReference[] findPossibleManifestEntries(IProject parentProject, IProject childProject); |
| |
| /** |
| * All returned manifest entries should have a runtime path and archiveName |
| * which, when combined, will be suitable for export to a child's |
| * manifest file. If a reference is in a folder that does not |
| * require it to be present in the manifest.mf classpath, it |
| * should *NOT* be returned here. |
| * |
| * All references should have a getRuntimePath() + getArchiveName() that |
| * resolves to the value that should be in the manifest.mf classpath section. |
| * |
| * Any reference equivilant to the ones in currentEntries should not be returned |
| * |
| * @param parentProject |
| * @param childProject |
| * @return |
| */ |
| public IVirtualReference[] findPossibleManifestEntries(IProject parentProject, IProject childProject, IVirtualReference[] currentEntries); |
| |
| |
| /** |
| * All returned manifest entries should have a runtime path and archiveName |
| * which, when combined, will be suitable for export to a child's |
| * manifest file. If a reference is in a folder that does not |
| * require it to be present in the manifest.mf classpath, it |
| * should *NOT* be returned here. |
| * |
| * All references should have a getRuntimePath() + getArchiveName() that |
| * resolves to the value that should be in the manifest.mf classpath section. |
| * |
| * Any reference *not* in the manifest should *not* be returned here |
| * |
| * @param parentProject |
| * @param childProject |
| * @return |
| */ |
| public IVirtualReference[] findCurrentManifestEntries(IProject parentProject, IProject childProject); |
| } |