01: // -*-Java-*-
02: // Copyright (c) 2001 Per M.A. Bothner and Brainfood Inc.
03: // This is free software; for terms and warranty disclaimer see ./COPYING.
04:
05: package gnu.lists;
06:
07: import java.util.*;
08:
09: /**
10: * A Sequence is an ordered list of elements.
11: * It is similar to and compatible with the Java2 java.util.List interface,
12: * but does not require it.
13: *
14: * All standard classes that implement Sequence also extend AbstractSequence.
15: * Using AbstractSequence provides default implementations for many methods,
16: * and also makes things a bit more efficient. However, client code should
17: * use Sequence rather than AbstractSequence.
18: *
19: * @author Per Bothner
20: */
21:
22: public interface Sequence extends java.util.List, Array, Consumable {
23: /** Special magic end-of-file marker. */
24: public static final Object eofValue = new String[] { "(EOF)" };
25:
26: /** True is this sequence contains no elements. */
27: public boolean isEmpty();
28:
29: /** See java.util.List. */
30: public int size();
31:
32: /** See java.util.List. */
33: public Object get(int index);
34:
35: public void fill(Object value);
36:
37: public java.util.Enumeration elements();
38:
39: /** Return code used to indicate a position is at end of the sequence. */
40: public static final int EOF_VALUE = 0;
41: public static final int PRIM_VALUE = 16;
42: public static final int INT_U8_VALUE = PRIM_VALUE + 1;
43: public static final int INT_S8_VALUE = PRIM_VALUE + 2;
44: public static final int INT_U16_VALUE = PRIM_VALUE + 3;
45: public static final int INT_S16_VALUE = PRIM_VALUE + 4;
46: public static final int INT_U32_VALUE = PRIM_VALUE + 5;
47: public static final int INT_S32_VALUE = PRIM_VALUE + 6;
48: public static final int INT_U64_VALUE = PRIM_VALUE + 7;
49: public static final int INT_S64_VALUE = PRIM_VALUE + 8;
50:
51: /** Return code used to indicate next element is 32-bit float. */
52: public static final int FLOAT_VALUE = PRIM_VALUE + 9;
53:
54: /** Return code used to indicate next element is 64-bit double. */
55: public static final int DOUBLE_VALUE = PRIM_VALUE + 10;
56: public static final int BOOLEAN_VALUE = PRIM_VALUE + 11;
57: /** A byte in an encoded string.
58: * Part of a char, in contrast with INT_S8_VALUE, which is an integer. */
59: public static final int TEXT_BYTE_VALUE = PRIM_VALUE + 12;
60: public static final int CHAR_VALUE = PRIM_VALUE + 13;
61: public static final int OBJECT_VALUE = 32;
62: public static final int GROUP_VALUE = 33;
63: public static final int DOCUMENT_VALUE = 34;
64: public static final int ATTRIBUTE_VALUE = 35;
65: /*
66: public static final int NAMESPACE_ATTRIBUTE_VALUE = 16;
67: public static final int COMMENT_VALUE = 16;
68: public static final int PROCESSING_INSTRUCTION_VALUE = 16;
69: public static final int ENTITY_REFERENCE_VALUE = 16;
70: */
71: }
|