Mercurial Hosting > luan
comparison core/src/luan/modules/IoLuan.java @ 590:f050c30952c0
add Io.schemes.null
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 27 Aug 2015 08:35:03 -0600 |
parents | 60c549d43988 |
children | b4f3dbe1c6e3 |
comparison
equal
deleted
inserted
replaced
589:97c8ae330efe | 590:f050c30952c0 |
---|---|
300 } | 300 } |
301 return tbl; | 301 return tbl; |
302 } | 302 } |
303 } | 303 } |
304 | 304 |
305 private static final LuanIO nullIO = new LuanIO() { | |
306 private final InputStream in = new InputStream() { | |
307 @Override public int read() { | |
308 return -1; | |
309 } | |
310 }; | |
311 private final OutputStream out = new OutputStream() { | |
312 @Override public void write(int b) {} | |
313 }; | |
314 | |
315 @Override InputStream inputStream() { | |
316 return in; | |
317 } | |
318 | |
319 @Override OutputStream outputStream() { | |
320 return out; | |
321 } | |
322 | |
323 @Override public String to_string() { | |
324 return "<null>"; | |
325 } | |
326 | |
327 }; | |
328 | |
305 public static final class LuanString extends LuanIO { | 329 public static final class LuanString extends LuanIO { |
306 private String s; | 330 private String s; |
307 | 331 |
308 private LuanString(String s) { | 332 private LuanString(String s) { |
309 this.s = s; | 333 this.s = s; |
483 } catch(NoSuchMethodException e) { | 507 } catch(NoSuchMethodException e) { |
484 throw new RuntimeException(e); | 508 throw new RuntimeException(e); |
485 } | 509 } |
486 return tbl; | 510 return tbl; |
487 } | 511 } |
512 } | |
513 | |
514 public static LuanTable null_() { | |
515 return nullIO.table(); | |
488 } | 516 } |
489 | 517 |
490 public static LuanTable string(LuanState luan,String s) throws LuanException { | 518 public static LuanTable string(LuanState luan,String s) throws LuanException { |
491 Utils.checkNotNull(luan,s); | 519 Utils.checkNotNull(luan,s); |
492 return new LuanString(s).table(); | 520 return new LuanString(s).table(); |
556 } | 584 } |
557 | 585 |
558 public static LuanTable newSchemes() { | 586 public static LuanTable newSchemes() { |
559 LuanTable schemes = new LuanTable(); | 587 LuanTable schemes = new LuanTable(); |
560 try { | 588 try { |
589 schemes.rawPut( "null", new LuanJavaFunction(IoLuan.class.getMethod("null_"),null) ); | |
561 add( schemes, "string", LuanState.class, String.class ); | 590 add( schemes, "string", LuanState.class, String.class ); |
562 add( schemes, "file", LuanState.class, String.class, Boolean.class ); | 591 add( schemes, "file", LuanState.class, String.class, Boolean.class ); |
563 add( schemes, "classpath", LuanState.class, String.class, Boolean.class ); | 592 add( schemes, "classpath", LuanState.class, String.class, Boolean.class ); |
564 add( schemes, "socket", LuanState.class, String.class ); | 593 add( schemes, "socket", LuanState.class, String.class ); |
565 add( schemes, "http", String.class, Boolean.class ); | 594 add( schemes, "http", String.class, Boolean.class ); |