Методы для создания ArrayValue из массива байт и строк

This commit is contained in:
Victor 2016-05-19 14:37:36 +03:00
parent 401d426163
commit e4ec1fba18
3 changed files with 21 additions and 21 deletions

View File

@ -10,6 +10,24 @@ import java.util.List;
* @author aNNiMON
*/
public final class ArrayValue implements Value, Iterable<Value> {
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;

View File

@ -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());
}
}

View File

@ -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);
}
}