}
}
// Check for JSONCodec
if (codecStore != null && codecStore.hasCodec(objectClass)) {
JSONCodec codec = codecStore.getCodec(objectClass);
Value value = codec.encode(o);
return value;
}
// Find an object inspector
Inspector inspector = null;
synchronized (inspectedClasses) {
if (inspectedClasses.containsKey(objectClass)) {
inspector = inspectedClasses.get(objectClass);
} else {
inspector = new Inspector(o);
inspector.inspect();
inspectedClasses.put(objectClass, inspector);
}
}
// Inspect Marshal the JSON Object
JSON.Object<JSON.String, Value> marshaledObject = new JSON.Object<JSON.String, Value>();
Inspector.InspectorProperty[] properties = inspector.getProperties();
String name = null;
Value value = null;
for (Inspector.InspectorProperty property : properties) {
if (property.isIgnore() || !property.isValidAccessor()) {
continue;
}
name = property.getName();