2023-01-20 18:52:57 +01:00
|
|
|
package io.gitlab.jfronny.muscript.data.dynamic;
|
2022-06-07 12:19:58 +02:00
|
|
|
|
2023-03-12 15:28:44 +01:00
|
|
|
import io.gitlab.jfronny.muscript.compiler.ExprWriter;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
2022-11-24 19:05:51 +01:00
|
|
|
import java.util.List;
|
2022-06-07 12:19:58 +02:00
|
|
|
|
2023-03-12 15:28:44 +01:00
|
|
|
public non-sealed interface DList extends Dynamic<List<Dynamic<?>>> {
|
2022-06-07 12:19:58 +02:00
|
|
|
default Dynamic<?> get(int i) {
|
|
|
|
return getValue().get(i);
|
|
|
|
}
|
2022-11-24 19:05:51 +01:00
|
|
|
|
2022-06-07 12:19:58 +02:00
|
|
|
default int size() {
|
|
|
|
return getValue().size();
|
|
|
|
}
|
2023-03-11 13:17:31 +01:00
|
|
|
|
|
|
|
default boolean isEmpty() {
|
|
|
|
return getValue().isEmpty();
|
|
|
|
}
|
2023-03-12 15:28:44 +01:00
|
|
|
|
|
|
|
@Override
|
|
|
|
default void serialize(ExprWriter writer) throws IOException {
|
|
|
|
writer.append("listOf(");
|
|
|
|
boolean first = true;
|
|
|
|
for (Dynamic<?> dynamic : getValue()) {
|
|
|
|
if (!first) writer.append(", ");
|
|
|
|
first = false;
|
|
|
|
dynamic.serialize(writer);
|
|
|
|
}
|
|
|
|
writer.append(')');
|
|
|
|
}
|
2022-06-07 12:19:58 +02:00
|
|
|
}
|