New Lua functions
[jpcrr.git] / mnj / lua / DumpedInput.java
blob0310e7c5fec31dfaaf9bcd3bb7209d29825d41ac
1 /* $Header: //info.ravenbrook.com/project/jili/version/1.1/code/mnj/lua/DumpedInput.java#1 $
2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
3 * All rights reserved.
5 * Permission is hereby granted, free of charge, to any person obtaining
6 * a copy of this software and associated documentation files (the
7 * "Software"), to deal in the Software without restriction, including
8 * without limitation the rights to use, copy, modify, merge, publish,
9 * distribute, sublicense, and/or sell copies of the Software, and to
10 * permit persons to whom the Software is furnished to do so, subject
11 * to the following conditions:
13 * The above copyright notice and this permission notice shall be
14 * included in all copies or substantial portions of the Software.
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
20 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
21 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 package mnj.lua;
27 import java.io.InputStream;
29 /**
30 * Converts a string obtained using string.dump into an
31 * {@link java.io.InputStream} so that it can be passed to {@link
32 * Lua#load(java.io.InputStream, java.lang.String)}.
34 final class DumpedInput extends InputStream
36 private String s;
37 private int i; // = 0
38 int mark = -1;
40 DumpedInput(String s)
42 this.s = s;
45 public int available()
47 return s.length() - i;
50 public void close()
52 s = null;
53 i = -1;
56 public void mark(int readlimit)
58 mark = i;
61 public boolean markSupported()
63 return true;
66 public int read()
68 if (i >= s.length())
70 return -1;
72 char c = s.charAt(i);
73 ++i;
74 return c&0xff;
77 public void reset()
79 i = mark;