// Path: src/main/java/net/seninp/jmotif/sax/SAXException.java
// public class SAXException extends Exception {
// 
//   /** The default serial version UID. */
//   private static final long serialVersionUID = 1L;
// 
//   /**
//    * Thrown when some problem occurs.
//    *
//    * @param description The problem description.
//    * @param error The previous error.
//    */
//   public SAXException(String description, Throwable error) {
//     super(description, error);
//   }
// 
//   /**
//    * Thrown when some problem occurs.
//    *
//    * @param description The problem description.
//    */
//   public SAXException(String description) {
//     super(description);
//   }
// 
// }


import net.seninp.jmotif.sax.SAXException;

package net.seninp.jmotif.sax.alphabet;


/**
 * The Alphabet class template.
 * 
 * @author Pavel Senin.
 * 
 */
public abstract class Alphabet {

  /**
   * get the max size of the alphabet.
   * 
   * @return maximum size of the alphabet.
   */
  public abstract Integer getMaxSize();

  /**
   * Get cut intervals corresponding to the alphabet size.
   * 
   * @param size The alphabet size.
   * @return cut intervals for the alphabet.
   * @throws SAXException if error occurs.
   */
  public abstract double[] getCuts(Integer size) throws SAXException;

  /**
   * Get the distance matrix for the alphabet size.
   * 
   * @param size The alphabet size.
   * @return The distance matrix.
   * @throws SAXException if error occurs.
   */

// Path: src/main/java/net/seninp/jmotif/sax/SAXException.java
// public class SAXException extends Exception {
// 
//   /** The default serial version UID. */
//   private static final long serialVersionUID = 1L;
// 
//   /**
//    * Thrown when some problem occurs.
//    *
//    * @param description The problem description.
//    * @param error The previous error.
//    */
//   public SAXException(String description, Throwable error) {
//     super(description, error);
//   }
// 
//   /**
//    * Thrown when some problem occurs.
//    *
//    * @param description The problem description.
//    */
//   public SAXException(String description) {
//     super(description);
//   }
// 
// }


// Path: src/main/java/net/seninp/jmotif/sax/alphabet/Alphabet.java
import net.seninp.jmotif.sax.SAXException;

package net.seninp.jmotif.sax.alphabet;


/**
 * The Alphabet class template.
 * 
 * @author Pavel Senin.
 * 
 */
public abstract class Alphabet {

  /**
   * get the max size of the alphabet.
   * 
   * @return maximum size of the alphabet.
   */
  public abstract Integer getMaxSize();

  /**
   * Get cut intervals corresponding to the alphabet size.
   * 
   * @param size The alphabet size.
   * @return cut intervals for the alphabet.
   * @throws SAXException if error occurs.
   */
  public abstract double[] getCuts(Integer size) throws SAXException;

  /**
   * Get the distance matrix for the alphabet size.
   * 
   * @param size The alphabet size.
   * @return The distance matrix.
   * @throws SAXException if error occurs.
   */

  public abstract double[][] getDistanceMatrix(Integer size) throws SAXException;
