wrap lua object into java object

- to ease handling wrap lua object to java object
This commit is contained in:
philippe lhardy
2020-11-04 13:39:04 +01:00
parent 9355fd8b6d
commit 6402766371
6 changed files with 67 additions and 2 deletions

View File

@@ -14,4 +14,9 @@ extends LuaObject {
public String toString() {
return "" + number ;
}
@Override
public Object wrapToJava() {
return new Integer(number);
}
}

View File

@@ -1,4 +1,9 @@
package org.artisanlogiciel.lua;
public class LuaObject {
public Object wrapToJava()
{
return null;
}
}

View File

@@ -1,7 +1,6 @@
package org.artisanlogiciel.lua;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
public class LuaSequence
extends LuaObject{
@@ -19,7 +18,45 @@ extends LuaObject{
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

View File

@@ -10,6 +10,11 @@ public class LuaString
string = stringBuffer.toString();
}
@Override
public Object wrapToJava() {
return string;
}
@Override
public String toString() {
return '"' + string + '"' ;

View File

@@ -1,6 +1,7 @@
package org.artisanlogiciel.lua;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class LuaTuple
@@ -19,6 +20,16 @@ public class LuaTuple
return item;
}
public String addInMap(HashMap<String,Object> map)
{
String key = items.get(0).toString();
Object value = items.get(1);
map.put(key,value);
return key;
}
@Override
public String toString() {
StringBuffer buffer = new StringBuffer();

View File

@@ -221,6 +221,8 @@ public class Parser {
if ( result != null )
{
System.out.println(result.toString());
Object we = result.wrapToJava();
System.out.println(we);
}
else
{