comparison core/src/luan/modules/IoLuan.java @ 421:b31d614343e8

add Io.LuanString.text_writer(); improve java related errors; fix to_string;
author Franklin Schmidt <fschmidt@gmail.com>
date Fri, 01 May 2015 15:13:14 -0600
parents 23b99a5039b5
children 23a93c118042
comparison
equal deleted inserted replaced
420:e9d4d5854e54 421:b31d614343e8
16 import java.io.InputStreamReader; 16 import java.io.InputStreamReader;
17 import java.io.OutputStreamWriter; 17 import java.io.OutputStreamWriter;
18 import java.io.ByteArrayInputStream; 18 import java.io.ByteArrayInputStream;
19 import java.io.DataInputStream; 19 import java.io.DataInputStream;
20 import java.io.DataOutputStream; 20 import java.io.DataOutputStream;
21 import java.io.StringWriter;
21 import java.io.IOException; 22 import java.io.IOException;
22 import java.io.FileNotFoundException; 23 import java.io.FileNotFoundException;
23 import java.net.URL; 24 import java.net.URL;
24 import java.net.Socket; 25 import java.net.Socket;
25 import java.net.ServerSocket; 26 import java.net.ServerSocket;
299 } 300 }
300 return tbl; 301 return tbl;
301 } 302 }
302 } 303 }
303 304
304 public static final class LuanString extends LuanIn { 305 public static final class LuanString extends LuanIO {
305 private final String s; 306 private String s;
306 307
307 private LuanString(String s) { 308 private LuanString(String s) {
308 this.s = s; 309 this.s = s;
309 } 310 }
310 311
311 @Override InputStream inputStream() throws IOException { 312 @Override InputStream inputStream() {
313 throw new UnsupportedOperationException();
314 }
315
316 @Override OutputStream outputStream() {
312 throw new UnsupportedOperationException(); 317 throw new UnsupportedOperationException();
313 } 318 }
314 319
315 @Override public String to_string() { 320 @Override public String to_string() {
316 return "<string>"; 321 return "<string>";
324 return s; 329 return s;
325 } 330 }
326 331
327 @Override public boolean exists() { 332 @Override public boolean exists() {
328 return true; 333 return true;
334 }
335
336 @Override public LuanTable text_writer() throws IOException {
337 LuanWriter luanWriter = new LuanWriter() {
338 private final Writer out = new StringWriter();
339
340 public void write(LuanState luan,Object... args) throws LuanException, IOException {
341 for( Object obj : args ) {
342 out.write( luan.toString(obj) );
343 }
344 }
345
346 public void close() throws IOException {
347 s = out.toString();
348 }
349 };
350 return writer(luanWriter);
329 } 351 }
330 } 352 }
331 353
332 public static final class LuanUrl extends LuanIn { 354 public static final class LuanUrl extends LuanIn {
333 private final URL url; 355 private final URL url;