package com.aptana.editor.php.core.model;
import java.util.List;
import org.eclipse.core.runtime.CoreException;
/**
* Module.
*
* @author Denis Denisenko
*/
public interface ISourceModule extends IModelElement, IParent
{
/**
* Gets resource if available.
*
* @return A resource. Either an IResource, IUniformResource or a null.
*/
Object getResource();
/**
* Gets module top-level types.
*
* @return module top-level types.
*/
List<IType> getTopLevelTypes();
/**
* Returns the resource path. In case the resource is in the workspace, a project relative path portable string is
* returned. In case the resource is out of the workspace, a URI toString() is returned.
*
* @return module path.
*/
String getPath();
List<IMethod> getTopLevelMethods();
IType getType(String name);
char[] getSourceAsCharArray() throws CoreException;
}