• The open() method.
    • Should handle all initialization.
      • This includes getting any command-line parameters or switches.
      • Do not initialize in a constructor.
        • This will cause problems if the primitive needs to be restarted. (More on this later.)
        • NeXtMidas uses reflection to call primitives. If the constructor takes in any arguments, NeXtMidas won't know how to call it.
        • Primitives should not even have a constructor declared.
    • Should open any files used.
      • If a pipe is opened in process(), there may be data loss.
    • Should return one of the following:
      NORMAL Normal operation, ready for process().
      FINISH Nothing to process, skip to close(). (This is rarely used.)
    • Example of using FINISH: A primitive that takes in a list of files to process may return FINISH if no files are given.