package com.coderising.jvm.engine; import java.util.HashMap; import java.util.Map; public class JavaObject { public static final int OBJECT = 1; public static final int STRING = 2; public static final int INT = 3; public static final int FLOAT = 4; int type; private String className; private Map<String, JavaObject> fieldValues = new HashMap<String, JavaObject>(); private String stringValue; private int intValue; private float floatValue; public void setFieldValue(String fieldName, JavaObject fieldValue) { fieldValues.put(fieldName, fieldValue); } public JavaObject(int type) { this.type = type; } public void setClassName(String className) { this.className = className; } public void setStringValue(String value) { stringValue = value; } public String getStringValue() { return this.stringValue; } public void setIntValue(int value) { this.intValue = value; } public int getIntValue() { return this.intValue; } public int getType() { return type; } public JavaObject getFieldValue(String fieldName) { return this.fieldValues.get(fieldName); } public String toString() { switch (this.getType()) { case INT: return String.valueOf(this.intValue); case STRING: return this.stringValue; case OBJECT: return this.className + ":" + this.fieldValues; case FLOAT: return String.valueOf(this.floatValue); default: return null; } } public String getClassName() { return this.className; } public void setFloatValue(float value) { this.floatValue = value; } }