package com.github.wdn.coding2017.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; } }