01: package it.unimi.dsi.mg4j.document;
02:
03: /*
04: * MG4J: Managing Gigabytes for Java
05: *
06: * Copyright (C) 2005-2007 Paolo Boldi and Sebastiano Vigna
07: *
08: * This library is free software; you can redistribute it and/or modify it
09: * under the terms of the GNU Lesser General Public License as published by the Free
10: * Software Foundation; either version 2.1 of the License, or (at your option)
11: * any later version.
12: *
13: * This library is distributed in the hope that it will be useful, but
14: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
16: * for more details.
17: *
18: * You should have received a copy of the GNU Lesser General Public License
19: * along with this program; if not, write to the Free Software
20: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21: *
22: */
23:
24: import it.unimi.dsi.lang.MutableString;
25:
26: /** An abstract implementation of a factory, providing a protected method to check
27: * for field indices.
28: */
29:
30: public abstract class AbstractDocumentFactory implements
31: DocumentFactory {
32: private static final long serialVersionUID = 1L;
33:
34: /** Checks that the index is correct (between 0, inclusive, and {@link it.unimi.dsi.mg4j.document.DocumentFactory#numberOfFields()},
35: * exclusive), and throws an {@link IndexOutOfBoundsException} if the index is not correct.
36: *
37: * @param index the index to be checked.
38: */
39: protected void ensureFieldIndex(final int index) {
40: if (index < 0 || index >= numberOfFields())
41: throw new IndexOutOfBoundsException(Integer.toString(index));
42: }
43:
44: public String toString() {
45: final MutableString res = new MutableString().append('[');
46: for (int field = 0; field < numberOfFields(); field++)
47: res.append(' ').append(fieldName(field)).append(':')
48: .append(fieldType(field).name());
49: return res.append(" ]").toString();
50: }
51: }
|