package org.eclipse.dltk.javascript.typeinfo; import org.eclipse.dltk.annotations.Nullable; import org.eclipse.dltk.core.ISourceNode; import org.eclipse.dltk.javascript.typeinfo.model.JSType; import org.eclipse.dltk.javascript.typeinfo.model.Type; /** * Call back for jsdoc parser to check the types that are declared in the doc. * * @author jcompagner */ public interface ITypeChecker { int LOCAL_TYPES = 1; int DEFAULT = LOCAL_TYPES; public int getDefaults(); public void setDefaults(int flags); /** * Checks the specified type expression. * * Delegates to the next function with {@link #DEFAULT} flags. */ public void checkType(JSType type, ISourceNode node); public void checkType(JSType type, ISourceNode node, int flags); /** * Checks the specified type. * * @param type * @param node * @param flags * @param checks * additional checks or <code>null</code> if not required */ public void checkType(Type type, ISourceNode node, int flags, @Nullable ITypeCheck[] checks); }