2022-05-05 07:49:03 +00:00
|
|
|
package dev.plex.toml;
|
2022-05-04 12:18:07 +00:00
|
|
|
|
|
|
|
import java.util.Collection;
|
2023-03-08 20:26:10 +00:00
|
|
|
|
2022-05-05 07:49:03 +00:00
|
|
|
import static dev.plex.toml.ValueWriters.WRITERS;
|
2022-05-04 12:18:07 +00:00
|
|
|
|
2022-05-04 12:20:29 +00:00
|
|
|
class TableArrayValueWriter extends ArrayValueWriter
|
2022-05-04 12:18:07 +00:00
|
|
|
{
|
2022-05-10 05:08:45 +00:00
|
|
|
static final ValueWriter TABLE_ARRAY_VALUE_WRITER = new TableArrayValueWriter();
|
2022-05-04 12:18:07 +00:00
|
|
|
|
2022-05-10 05:08:45 +00:00
|
|
|
@Override
|
|
|
|
public boolean canWrite(Object value)
|
|
|
|
{
|
|
|
|
return isArrayish(value) && !isArrayOfPrimitive(value);
|
|
|
|
}
|
2022-05-04 12:18:07 +00:00
|
|
|
|
2022-05-10 05:08:45 +00:00
|
|
|
@Override
|
|
|
|
public void write(Object from, WriterContext context)
|
|
|
|
{
|
|
|
|
Collection<?> values = normalize(from);
|
2022-05-04 12:18:07 +00:00
|
|
|
|
2022-05-10 05:08:45 +00:00
|
|
|
WriterContext subContext = context.pushTableFromArray();
|
2022-05-04 12:18:07 +00:00
|
|
|
|
2022-05-10 05:08:45 +00:00
|
|
|
for (Object value : values)
|
|
|
|
{
|
|
|
|
WRITERS.findWriterFor(value).write(value, subContext);
|
|
|
|
}
|
2022-05-04 12:18:07 +00:00
|
|
|
}
|
|
|
|
|
2022-05-10 05:08:45 +00:00
|
|
|
private TableArrayValueWriter()
|
|
|
|
{
|
|
|
|
}
|
2022-05-04 12:18:07 +00:00
|
|
|
|
2022-05-10 05:08:45 +00:00
|
|
|
@Override
|
|
|
|
public String toString()
|
|
|
|
{
|
|
|
|
return "table-array";
|
|
|
|
}
|
2022-05-04 12:18:07 +00:00
|
|
|
}
|