Add last Lua type: userdata. Changed LInstance to inherit from LUserData,
and changed instanceof/casts to LInstance to use LUserData instead. This should enable various add-ons to be compatible without knowing much, or anything, about each other.
This commit is contained in:
28
src/main/java/lua/value/LUserData.java
Normal file
28
src/main/java/lua/value/LUserData.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package lua.value;
|
||||
|
||||
public class LUserData extends LValue {
|
||||
public static final LString TYPE_NAME = new LString("userdata");
|
||||
|
||||
public final Object m_instance;
|
||||
|
||||
public LUserData(Object obj) {
|
||||
m_instance = obj;
|
||||
}
|
||||
|
||||
public String luaAsString() {
|
||||
return m_instance.toString();
|
||||
}
|
||||
|
||||
public boolean equals(Object obj) {
|
||||
return (this == obj) ||
|
||||
(obj instanceof LUserData && this.m_instance == ((LUserData) obj).m_instance);
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return System.identityHashCode( m_instance );
|
||||
}
|
||||
|
||||
public LString luaGetType() {
|
||||
return TYPE_NAME;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user