Files
dsrc/sku.0/sys.server/compiled/game/script/obj_var.java
2018-06-07 00:32:29 +01:00

692 lines
16 KiB
Java
Executable File

/*
Title: obj_var
Description: Wrapper for an object variable.
*/
package script;
import java.io.Serializable;
import java.lang.reflect.Array;
public class obj_var implements Comparable, Serializable
{
private final static long serialVersionUID = -3373805124719784247L;
protected String m_name;
protected Object m_data;
/**
* Class constructor.
*
* @param name the obj_var name
*/
protected obj_var(String name)
{
m_name = name;
m_data = null;
} // obj_var(String)
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, int data)
{
m_name = name;
m_data = new Integer(data);
} // obj_var(String, int)
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, int[] data) throws java.lang.ClassNotFoundException
{
m_name = name;
// m_data = Array.newInstance(Class.forName("java.lang.Integer"), data.length);
m_data = new int[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, new Integer(data[i]));
} // obj_var(String, int[])
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, float data)
{
m_name = name;
m_data = new Float(data);
} // obj_var(String, float)
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, float[] data) throws java.lang.ClassNotFoundException
{
m_name = name;
// m_data = Array.newInstance(Class.forName("java.lang.Float"), data.length);
m_data = new float[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, new Float(data[i]));
} // obj_var(String, float[])
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, String data)
{
m_name = name;
m_data = data;
} // obj_var(String, String)
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, String[] data) throws java.lang.ClassNotFoundException
{
m_name = name;
// m_data = Array.newInstance(Class.forName("java.lang.String"), data.length);
m_data = new String[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, data[i]);
} // obj_var(String, String[])
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, obj_id data)
{
m_name = name;
m_data = data;
} // obj_var(String, obj_id)
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, long data)
{
m_name = name;
m_data = (data == 0) ? null : obj_id.getObjId(data);
} // obj_var(String, obj_id)
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, obj_id[] data) throws java.lang.ClassNotFoundException
{
m_name = name;
// m_data = Array.newInstance(Class.forName("script.obj_id"), data.length);
m_data = new obj_id[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, data[i]);
} // obj_var(String, obj_id[])
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, long[] data) throws java.lang.ClassNotFoundException
{
m_name = name;
m_data = new obj_id[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, (data[i] == 0) ? null : obj_id.getObjId(data[i]));
} // obj_var(String, obj_id[])
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, location data)
{
m_name = name;
m_data = (location)data.clone();
} // obj_var(String, location)
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, location[] data) throws java.lang.ClassNotFoundException
{
m_name = name;
// m_data = Array.newInstance(Class.forName("script.location"), data.length);
m_data = new location[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, data[i].clone());
} // obj_var(String, location[])
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, string_id data)
{
m_name = name;
m_data = data;
} // obj_var(String, string_id)
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, string_id[] data)
{
m_name = name;
m_data = new string_id[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, data[i]);
} // obj_var(String, string_id[])
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, attrib_mod data)
{
m_name = name;
m_data = data.pack();
} // obj_var(String, attrib_mod)
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, attrib_mod[] data)
{
m_name = name;
m_data = new String[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, data[i].pack());
} // obj_var(String, attrib_mod[])
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, transform data)
{
m_name = name;
m_data = data;
}
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, transform[] data)
{
m_name = name;
m_data = new transform[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, data[i]);
}
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, vector data)
{
m_name = name;
m_data = data;
}
/**
* Class constructor.
*
* @param name the obj_var name
* @param data the obj_var value
*/
public obj_var(String name, vector[] data)
{
m_name = name;
m_data = new vector[data.length];
for ( int i = 0; i < data.length; ++i )
Array.set(m_data, i, data[i]);
}
/**
* Accessor function.
*
* @return the obj_var name
*/
public String getName()
{
return m_name;
} // getName
/**
* Accessor function.
*
* @return the obj_var data
*/
public Object getData()
{
return m_data;
} // getData
/**
* Accessor function.
*
* @return the obj_var data as an int
*/
public int getIntData() throws ClassCastException
{
try
{
return ((Integer)m_data).intValue();
}
catch( ClassCastException err )
{
System.err.println("WARNING: Java obj_var.getIntData tried to get item " + m_name + " of type " + m_data.getClass());
}
return 0;
} // getIntData
/**
* Accessor function.
*
* @return the obj_var data as an int[]
*/
public int[] getIntArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
int[] data = new int[length];
for ( int i = 0; i < length; ++i )
data[i] = Array.getInt(m_data, i);
return data;
} // getIntArrayData
/**
* Accessor function.
*
* @return the obj_var data as a float
*/
public float getFloatData() throws ClassCastException
{
try
{
return ((Float)m_data).floatValue();
}
catch( ClassCastException err )
{
System.err.println("WARNING: Java obj_var.getFloatData tried to get item " + m_name + " of type " + m_data.getClass());
System.err.println("------- Caught NON-FATAL Class Cast Exception -------");
System.err.println("Stack:");
err.printStackTrace();
System.err.println("------- End of Caught Class Cast Exception, Continuing execution --------");
}
return 0.0f;
} // getFloatData
/**
* Accessor function.
*
* @return the obj_var data as a float[]
*/
public float[] getFloatArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
float[] data = new float[length];
for ( int i = 0; i < length; ++i )
data[i] = Array.getFloat(m_data, i);
return data;
} // getFloatArrayData
/**
* Accessor function.
*
* @return the obj_var data as a boolean
*/
public boolean getBooleanData() throws ClassCastException
{
try
{
return ((Integer)m_data).intValue() != 0;
}
catch( ClassCastException err )
{
System.err.println("WARNING: Java obj_var.getBooleanData tried to get item " + m_name + " of type " + m_data.getClass());
}
return false;
} // getBooleanData
/**
* Accessor function.
*
* @return the obj_var data as a boolean[]
*/
public boolean[] getBooleanArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
boolean[] data = new boolean[length];
for ( int i = 0; i < length; ++i )
data[i] = Array.getInt(m_data, i) != 0;
return data;
} // getBooleanArrayData
/**
* Accessor function.
*
* @return the obj_var data as a String
*/
public String getStringData() throws ClassCastException
{
try
{
return (String)m_data;
}
catch( ClassCastException err )
{
System.err.println("WARNING: Java obj_var.getStringData tried to get item " + m_name + " of type " + m_data.getClass());
}
return "";
} // getStringData
/**
* Accessor function.
*
* @return the obj_var data as a String[]
*/
public String[] getStringArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
String[] data = new String[length];
for ( int i = 0; i < length; ++i )
data[i] = (String)Array.get(m_data, i);
return data;
} // getStringArrayData
/**
* Accessor function.
*
* @return the obj_var data as an obj_id
*/
public obj_id getObjIdData() throws ClassCastException
{
try
{
return (obj_id)m_data;
}
catch( ClassCastException err )
{
System.err.println("WARNING: Java obj_var.getObjIdData tried to get item " + m_name + " of type " + m_data.getClass());
}
return null;
} // getObjIdData
/**
* Accessor function.
*
* @return the obj_var data as an obj_id[]
*/
public obj_id[] getObjIdArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
obj_id[] data = new obj_id[length];
for ( int i = 0; i < length; ++i )
data[i] = (obj_id)Array.get(m_data, i);
return data;
} // getObjIdArrayData
/**
* Accessor function.
*
* @return the obj_var data as a location
*/
public location getLocationData() throws ClassCastException
{
try
{
return new location((location)m_data);
}
catch( ClassCastException err )
{
System.err.println("WARNING: Java obj_var.getLocationData tried to get item " + m_name + " of type " + m_data.getClass());
}
return null;
} // getLocationData
/**
* Accessor function.
*
* @return the obj_var data as a location[]
*/
public location[] getLocationArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
location[] data = new location[length];
for ( int i = 0; i < length; ++i )
data[i] = new location((location)Array.get(m_data, i));
return data;
} // getLocationArrayData
/**
* Accessor function.
*
* @return the obj_var data as an string_id
*/
public string_id getStringIdData() throws ClassCastException
{
try
{
return (string_id)m_data;
}
catch( ClassCastException err )
{
System.err.println("WARNING: Java obj_var.getStringIdData tried to get item " + m_name + " of type " + m_data.getClass());
}
return null;
} // getStringIdData
/**
* Accessor function.
*
* @return the obj_var data as an string_id[]
*/
public string_id[] getStringIdArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
string_id[] data = new string_id[length];
for ( int i = 0; i < length; ++i )
data[i] = (string_id)Array.get(m_data, i);
return data;
} // getStringIdArrayData
/**
* Accessor function.
*
* @return the obj_var data as an attrib_mod
*/
public attrib_mod getAttribModData() throws ClassCastException
{
try
{
return new attrib_mod((String)m_data);
}
catch( ClassCastException err )
{
System.err.println("WARNING: Java obj_var.getAttribModData tried to get item " + m_name + " of type " + m_data.getClass());
}
return null;
} // getAttribModData
/**
* Accessor function.
*
* @return the obj_var data as an attrib_mod[]
*/
public attrib_mod[] getAttribModArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
attrib_mod[] data = new attrib_mod[length];
for ( int i = 0; i < length; ++i )
data[i] = new attrib_mod((String)Array.get(m_data, i));
return data;
} // getAttribModArrayData
/**
* Accessor function.
*
* @return the obj_var data as a transform
*/
public transform getTransformData() throws ClassCastException
{
try
{
return (transform)m_data;
}
catch (ClassCastException err)
{
System.err.println("WARNING: Java obj_var.getTransformData tried to get item " + m_name + " of type " + m_data.getClass());
}
return null;
}
/**
* Accessor function.
*
* @return the obj_var data as a transform[]
*/
public transform[] getTransformArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
transform[] data = new transform[length];
for (int i = 0; i < length; ++i)
data[i] = (transform)Array.get(m_data, i);
return data;
}
/**
* Accessor function.
*
* @return the obj_var data as a vector
*/
public vector getVectorData() throws ClassCastException
{
try
{
return (vector)m_data;
}
catch (ClassCastException err)
{
System.err.println("WARNING: Java obj_var.getVectorData tried to get item " + m_name + " of type " + m_data.getClass());
}
return null;
}
/**
* Accessor function.
*
* @return the obj_var data as a vector[]
*/
public vector[] getVectorArrayData() throws ClassCastException
{
int length = Array.getLength(m_data);
vector[] data = new vector[length];
for (int i = 0; i < length; ++i)
data[i] = (vector)Array.get(m_data, i);
return data;
}
/**
* Conversion function.
*
* @return the obj_var as a string.
*/
public String toString()
{
return "(" + m_name + " = " + m_data.toString() + ")";
} // toString
/**
* Compares this to a generic object.
*
* @returns <, =, or > 0 if the object is a objId, else throws
* ClassCastException
*/
public int compareTo(Object o) throws ClassCastException
{
return compareTo((obj_var)o);
} // compareTo(Object)
/**
* Compares this to another obj_var.
*
* @returns <, =, or > 0
*/
public int compareTo(obj_var id)
{
int result = m_name.compareTo(id.m_name);
if (result == 0)
result = ((Comparable)m_data).compareTo(id.m_data);
return result;
} // compareTo(obj_var)
/**
* Compares this to a generic object.
*
* @returns true if the objects have the same data, false if not
*/
public boolean equals(Object o)
{
try
{
int result = compareTo(o);
if (result == 0)
return true;
}
catch (ClassCastException err)
{
}
return false;
} // equals
} // class obj_var