package io.cattle.platform.object.postinit;
import io.cattle.platform.util.type.Priority;
import io.github.ibuildthecloud.gdapi.factory.SchemaFactory;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
public class UUIDPostInstantiationHandler implements ObjectPostInstantiationHandler, Priority {
public static final String UUID = "uuid";
SchemaFactory schemaFactory;
@Override
public <T> T postProcess(T obj, Class<T> clz, Map<String, Object> properties) {
set(obj, UUID, java.util.UUID.randomUUID().toString());
return obj;
}
protected void set(Object obj, String property, Object value) {
try {
if (BeanUtils.getProperty(obj, property) == null) {
BeanUtils.setProperty(obj, property, value);
}
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
} catch (NoSuchMethodException e) {
}
}
@Override
public int getPriority() {
return Priority.DEFAULT;
}
}