📄 observationintegerreader.java
字号:
/* jahmm package - v0.3.1 *//* * Copyright (c) 2004, Jean-Marc Francois. * * This file is part of Jahmm. * Jahmm is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Jahmm 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Jahmm; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */package be.ac.ulg.montefiore.run.jahmm.io;import java.util.*;import java.io.*;import be.ac.ulg.montefiore.run.jahmm.*;/** * Reads an {@link be.ac.ulg.montefiore.run.jahmm.ObservationInteger * ObservationInteger} up to (and including) a semi-colon. * <p> * The format of this observation is a simple integer ([+-]?[0123456789]+). * <p> * For example, reading * <pre>76;</pre> * creates an observation such as the one generated by * <code>new ObservationInteger(76);</code> */public class ObservationIntegerReader extends ObservationReader { // Maximum number elements allowed private int nbElements; /** * Constructs a reader of {@link ObservationInteger ObservationInteger}. */ public ObservationIntegerReader() { nbElements = -1; } /** * Constructs a reader of {@link ObservationInteger ObservationInteger}. * Verifies the maximum value of the observations read. * * @param nbElements The permitted number of different elements. Each * value must be <code>0</code> ≤ <code>value</code> * < <code>nbElements</code>. */ public ObservationIntegerReader(int nbElements) { if (nbElements <= 0) throw new IllegalArgumentException("Nb of elements must be " + "positive"); this.nbElements = nbElements; } /** * An {@link be.ac.ulg.montefiore.run.jahmm.ObservationInteger * ObservationInteger} reader, as explained in * {@link ObservationReader ObservationReader}. * * @param st A stream tokenizer. * @return The {@link be.ac.ulg.montefiore.run.jahmm.ObservationInteger * ObservationInteger} read. */ public Observation read(StreamTokenizer st) throws IOException, FileFormatException { ObservationInteger oi; st.ordinaryChar((int)'.'); switch (st.nextToken()) { case StreamTokenizer.TT_EOL: case StreamTokenizer.TT_EOF: case StreamTokenizer.TT_WORD: throw new FileFormatException("Integer expected"); case StreamTokenizer.TT_NUMBER: if (st.nval > nbElements) throw new FileFormatException("Integer higher than maxium " + "value"); oi = new ObservationInteger((int) st.nval); break; default: throw new FileFormatException("Integer expected"); } switch (st.nextToken()) { case ';': break; default: if (st.ttype != ';') throw new FileFormatException("';' expected"); } ObservationSequencesReader.initSyntaxTable(st); return oi; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -