org.cpsolver.ifs.util

## Class PrologFile

- java.lang.Object
- - org.cpsolver.ifs.util.PrologFile

- All Implemented Interfaces:
    Iterator<PrologFile.Term>

      public class PrologFile
      extends Object
      implements Iterator<PrologFile.Term>

  A class for reading prolog files.
  Version:
    IFS 1.3 (Iterative Forward Search)
    Copyright (C) 2006 - 2014 Tomáš Müller
    muller@unitime.org
    http://muller.unitime.org
    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
    This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    You should have received a copy of the GNU Lesser General Public License along with this library; if not see http://www.gnu.org/licenses/.
  Author:
    Tomáš Müller

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `PrologFile.Term` Term -- it can contain a text and a content (set of terms)

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PrologFile(String file)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `hasNext()`
    `PrologFile.Term` | `next()`
    `static List<PrologFile.Term>` | `readTermsFromStream(InputStream is, String term)` Reads a prolog file.
    `void` | `remove()`
    `static void` | `writeTerms(PrintWriter pw, List<PrologFile.Term> terms)` Writes a set of terms.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.util.Iterator

      `forEachRemaining`

- - ### Constructor Detail

    - #### PrologFile

          public PrologFile(String file)
                     throws IOException

      Throws:
        `IOException`

  - ### Method Detail

    - #### readTermsFromStream

          public static List<PrologFile.Term> readTermsFromStream(InputStream is,
                                                                  String term)
                                                           throws IOException

      Reads a prolog file. It returns a set of terms
      Parameters:
        `is` - input stream
        `term` - term to read
      Returns:
        list of terms
      Throws:
        `IOException` - an exception

    - #### writeTerms

          public static void writeTerms(PrintWriter pw,
                                        List<PrologFile.Term> terms)
                                 throws IOException

      Writes a set of terms.
      Parameters:
        `pw` - print writer
        `terms` - list of terms to write
      Throws:
        `IOException` - an exception

    - #### hasNext

          public boolean hasNext()

      Specified by:
        `hasNext` in interface `Iterator<PrologFile.Term>`

    - #### next

          public PrologFile.Term next()

      Specified by:
        `next` in interface `Iterator<PrologFile.Term>`

    - #### remove

          public void remove()

      Specified by:
        `remove` in interface `Iterator<PrologFile.Term>`