From e4ec1fba188951a15c9f054377088ee8d5bbab44 Mon Sep 17 00:00:00 2001 From: Victor Date: Thu, 19 May 2016 14:37:36 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20ArrayValue=20=D0=B8=D0=B7=20=D0=BC=D0=B0=D1=81=D1=81=D0=B8?= =?UTF-8?q?=D0=B2=D0=B0=20=D0=B1=D0=B0=D0=B9=D1=82=20=D0=B8=20=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/ownlang/lib/ArrayValue.java | 18 ++++++++++++++++++ src/com/annimon/ownlang/lib/modules/files.java | 17 ++--------------- .../lib/modules/functions/std_split.java | 7 +------ 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/com/annimon/ownlang/lib/ArrayValue.java b/src/com/annimon/ownlang/lib/ArrayValue.java index 3d67b80..f1d1509 100644 --- a/src/com/annimon/ownlang/lib/ArrayValue.java +++ b/src/com/annimon/ownlang/lib/ArrayValue.java @@ -10,6 +10,24 @@ import java.util.List; * @author aNNiMON */ public final class ArrayValue implements Value, Iterable { + + public static ArrayValue of(byte[] array) { + final int size = array.length; + final ArrayValue result = new ArrayValue(size); + for (int i = 0; i < size; i++) { + result.set(i, NumberValue.of(array[i])); + } + return result; + } + + public static ArrayValue of(String[] array) { + final int size = array.length; + final ArrayValue result = new ArrayValue(size); + for (int i = 0; i < size; i++) { + result.set(i, new StringValue(array[i])); + } + return result; + } public static ArrayValue add(ArrayValue array, Value value) { final int last = array.elements.length; diff --git a/src/com/annimon/ownlang/lib/modules/files.java b/src/com/annimon/ownlang/lib/modules/files.java index 5156e03..b106bb1 100644 --- a/src/com/annimon/ownlang/lib/modules/files.java +++ b/src/com/annimon/ownlang/lib/modules/files.java @@ -10,7 +10,6 @@ import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; -import java.io.FilenameFilter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; @@ -124,13 +123,7 @@ public final class files implements Module { private static class listFiles extends FileFunction { @Override protected Value execute(FileInfo fileInfo, Value[] args) throws IOException { - final String[] files = fileInfo.file.list(); - final int size = files.length; - final ArrayValue result = new ArrayValue(size); - for (int i = 0; i < size; i++) { - result.set(i, new StringValue(files[i])); - } - return result; + return ArrayValue.of(fileInfo.file.list()); } } @@ -221,13 +214,7 @@ public final class files implements Module { } baos.flush(); baos.close(); - final byte[] bytes = baos.toByteArray(); - final int size = bytes.length; - final ArrayValue result = new ArrayValue(size); - for (int i = 0; i < size; i++) { - result.set(i, NumberValue.of(bytes[i])); - } - return result; + return ArrayValue.of(baos.toByteArray()); } } diff --git a/src/com/annimon/ownlang/lib/modules/functions/std_split.java b/src/com/annimon/ownlang/lib/modules/functions/std_split.java index 71f8a36..a078a10 100644 --- a/src/com/annimon/ownlang/lib/modules/functions/std_split.java +++ b/src/com/annimon/ownlang/lib/modules/functions/std_split.java @@ -13,11 +13,6 @@ public final class std_split implements Function { final int limit = (args.length == 3) ? args[2].asInt() : 0; final String[] parts = input.split(regex, limit); - final ArrayValue result = new ArrayValue(parts.length); - for (int i = 0; i < parts.length; i++) { - result.set(i, new StringValue(parts[i])); - } - - return result; + return ArrayValue.of(parts); } } \ No newline at end of file