wrap lua object into java object
- to ease handling wrap lua object to java object
This commit is contained in:
@@ -14,4 +14,9 @@ extends LuaObject {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return "" + number ;
|
return "" + number ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object wrapToJava() {
|
||||||
|
return new Integer(number);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
package org.artisanlogiciel.lua;
|
package org.artisanlogiciel.lua;
|
||||||
|
|
||||||
public class LuaObject {
|
public class LuaObject {
|
||||||
|
|
||||||
|
public Object wrapToJava()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package org.artisanlogiciel.lua;
|
package org.artisanlogiciel.lua;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class LuaSequence
|
public class LuaSequence
|
||||||
extends LuaObject{
|
extends LuaObject{
|
||||||
@@ -19,7 +18,45 @@ extends LuaObject{
|
|||||||
System.err.println("adding null tuple");
|
System.err.println("adding null tuple");
|
||||||
}
|
}
|
||||||
items.add(object);
|
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
|
@Override
|
||||||
|
|||||||
@@ -10,6 +10,11 @@ public class LuaString
|
|||||||
string = stringBuffer.toString();
|
string = stringBuffer.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object wrapToJava() {
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return '"' + string + '"' ;
|
return '"' + string + '"' ;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.artisanlogiciel.lua;
|
package org.artisanlogiciel.lua;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class LuaTuple
|
public class LuaTuple
|
||||||
@@ -19,6 +20,16 @@ public class LuaTuple
|
|||||||
return item;
|
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
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
StringBuffer buffer = new StringBuffer();
|
StringBuffer buffer = new StringBuffer();
|
||||||
|
|||||||
@@ -221,6 +221,8 @@ public class Parser {
|
|||||||
if ( result != null )
|
if ( result != null )
|
||||||
{
|
{
|
||||||
System.out.println(result.toString());
|
System.out.println(result.toString());
|
||||||
|
Object we = result.wrapToJava();
|
||||||
|
System.out.println(we);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user