/**********************************************************************
* Copyright (c) 2005-2009 ant4eclipse project team.
*
* 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:
* Nils Hartmann, Daniel Kasmeroglu, Gerd Wuetherich
**********************************************************************/
package org.ant4eclipse.lib.pydt.tools;
import org.ant4eclipse.lib.pydt.model.RawPathEntry;
import org.ant4eclipse.lib.pydt.model.ResolvedPathEntry;
/**
* This registry is used to manage the path entries used within a python project. This means the {@link RawPathEntry} as
* well as the {@link ResolvedPathEntry} instances.
*
* @author Daniel Kasmeroglu (Daniel.Kasmeroglu@Kasisoft.net)
*/
public interface PathEntryRegistry {
/**
* Returns <code>true</code> if the supplied entry already has been resolved.
*
* @param entry
* The entry to be tested. Not <code>null</code>.
*
* @return <code>true</code> <=> The entry already has been resolved.
*/
boolean isResolved(RawPathEntry entry);
/**
* Registers a path entry for an raw representation.
*
* @param origin
* A descriptional unresolved entry. Not <code>null</code>.
* @param solution
* A corresponding entry which has been resolved. Not <code>null</code>.
*/
void registerResolvedPathEntry(RawPathEntry origin, ResolvedPathEntry solution);
/**
* Returns the resolved entry for the supplied entry if it already has been registered.
*
* @param entry
* The unresolved entry just containing the necessary information. Not <code>null</code>.
*
* @return The resolved representation of the supplied entry. Not <code>null</code> if
* {@link #isResolved(RawPathEntry)} returns <code>true</code>.
*/
ResolvedPathEntry getResolvedPathEntry(RawPathEntry entry);
} /* ENDINTERFACE */