blob: a06040cb2ad89fc35a8e6fc33f0820217f8ffaf4 [file] [log] [blame]
package org.eclipse.e4.tools.emf.ui.internal.common.objectdata;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
public class JavaObject {
private Object instance;
private List<JavaAttribute> attributes;
public JavaObject(Object instance) {
this.instance = instance;
}
public Object getInstance() {
return instance;
}
public List<JavaAttribute> getAttributes() {
if (attributes == null) {
initAttributes();
}
return attributes;
}
private void initAttributes() {
attributes = new ArrayList<>();
if (instance == null) {
return;
}
Class<?> clazz = instance.getClass();
addDeclaredFields(clazz);
clazz = clazz.getSuperclass();
while (clazz != null) {
addDeclaredFields(clazz);
clazz = clazz.getSuperclass();
}
}
private void addDeclaredFields(Class<?> clazz) {
for (Field f : clazz.getDeclaredFields()) {
attributes.add(new JavaAttribute(this, f));
}
}
public String getName() {
return instance.getClass().getSimpleName();
}
}