Files
artloglaby/java/org/artisanlogiciel/lua/LuaSequence.java
philippe lhardy 6402766371 wrap lua object into java object
- to ease handling wrap lua object to java object
2020-11-04 13:39:04 +01:00

81 lines
1.7 KiB
Java

package org.artisanlogiciel.lua;
import java.util.*;
public class LuaSequence
extends LuaObject{
List<LuaObject> items;
public LuaSequence()
{
items = new ArrayList<>();
}
void addObject(LuaObject object)
{
if ( object == null )
{
System.err.println("adding null tuple");
}
items.add(object);
}
public boolean isMap()
{
return ( items.get(0) instanceof LuaTuple );
}
public HashMap<String,Object> wrapTodHashMap()
{
HashMap<String,Object> map = new HashMap<>(items.size());
for ( LuaObject item : items)
{
if (item instanceof LuaTuple )
{
LuaTuple tuple = (LuaTuple) item;
tuple.addInMap(map);
}
}
return map;
}
public List<Object> wrapToList()
{
List<Object> list = new ArrayList<>() ;
for ( LuaObject item : items)
{
if ( ! (item instanceof LuaTuple ) )
{
list.add(item.wrapToJava());
}
}
return list;
}
@Override
public Object wrapToJava() {
return isMap() ? wrapTodHashMap() : wrapToList();
}
@Override
public String toString()
{
StringBuffer buffer = new StringBuffer();
buffer.append('{');
if (items.size() > 0) {
buffer.append(items.get(0).toString());
if (items.size() > 1) {
for (int i = 1; i < items.size(); i ++)
{
buffer.append(',');
buffer.append(items.get(i).toString());
}
}
}
buffer.append('}');
return buffer.toString();
}
}