package com.openfeint.internal.resource;
import java.util.HashMap;
public abstract class ResourceClass {
public Class<? extends Resource> mObjectClass;
public HashMap<String, ResourceProperty> mProperties;
public String mResourceName;
abstract public Resource factory();
private void mixinParentProperties(Class<?> objectClass) {
if (objectClass != Resource.class) {
Class<?> superClass = objectClass.getSuperclass();
// get super first, add our stuff on the way back down.
mixinParentProperties(superClass);
ResourceClass klass = Resource.getKlass(superClass);
for (String propName : klass.mProperties.keySet()) {
mProperties.put(propName, klass.mProperties.get(propName));
}
}
}
public ResourceClass(Class<? extends Resource> objectClass, String resourceName) {
mObjectClass = objectClass;
mResourceName = resourceName;
mProperties = new HashMap<String, ResourceProperty>();
// add properties from parent classes, all the way up to the top.
mixinParentProperties(objectClass);
}
}