// (c) MIT 2003.  All rights reserved.

///////////////////////////////////////////////////////////////////////////////
// $Id: Module.java,v 1.9 2003/03/06 00:40:39 moltmans Exp $
// FILE:	Module.java
//
// AUTHOR:	Manoj D. Muzumdar
//		archon@ai.mit.edu
//
// DATE:	September, 1998
//
// COPYRIGHT:	Massachusetts Institute of Technology
//		All rights reserved.
//
// PURPOSE:	Drawing recognition
//
// HISTORY:     Adapted from RecognitionContext written by
//              Manoj in June, 1998
//
///////////////////////////////////////////////////////////////////////////////
package rec.sys;

import java.util.*;
import rec.util.*;

public interface Module
{
  public String getName();
  
  public Id getId();

  public boolean isEnabled();

  public void enable();

  public void disable();

  /** Apply the reasoners **/
  public void reasonOnWidget( Surface s, Widget w, SimpleGraph g );

  /** Apply the recognizers **/
  public boolean recognizeWidget( Surface s, Widget w );

  public Iterator getRecognizers( Widget w );

  public Iterator getFastRecognizers();

  public Iterator getReasoners();

  public void add( Reasoner r );
  public void remove( Reasoner r );

  public void add( Recognizer r );
  public void remove( Recognizer r );

}

///////////////////////////////////////////////////////////////////////////////
