package com.aptana.editor.php.core.model;
import java.util.List;
/**
* Type.
* @author Denis Denisenko
*/
public interface IType extends IMember
{
/**
* Gets direct type super-classes.
* @return type super-classes.
*/
List<IType> getSuperClasses();
/**
* Gets type interfaces.
* @return type interfaces.
*/
List<IType> getInterfaces();
/**
* Gets both super-classes and interfaces.
* @return supertypes.
*/
List<IType> getSuperTypes();
/**
* Gets direct type super class names.
* @return type super class names.
*/
List<String> getSuperClassNames();
/**
* Gets type interface names.
* @return type interface names.
*/
List<String> getInterfaceNames();
/**
* Gets type fields.
* @return type fields.
*/
List<IField> getFields();
/**
* Gets type field by name.
* @param fieldName - field name.
* @return field.
*/
IField getField(String fieldName);
/**
* Gets type methods.
* @return type methods.
*/
List<IMethod> getMethods();
/**
* Gets type methods having the name specified.
* @param methodName - method name.
* @return type methods having the name specified.
*/
List<IMethod> getMethods(String methodName);
/**
* Whether the type is interface.
* @return whether the type is interface.
*/
boolean isInterface();
}