createBindRules(targetType);\r
}\r
\r
+ @Override\r
+ public String toString()\r
+ {\r
+ return String.format("parameter setter:\n%s\nrelation setter:\n%s", setterContainer, relationSetterContainer);\r
+ }\r
+\r
private void createBindRules(Class< ? > targetType)\r
{\r
// look for all super classes\r
if (paramName.length() <= 0)\r
{\r
// infer parameter name from argument type\r
- paramName = getCanonicalParameterName(argTypes[0].getName());\r
+ paramName = getCanonicalParameterName(argTypes[0].getSimpleName());\r
}\r
setterContainer.add(ParameterSetter.newSetter(c, paramName, m));\r
return;\r
import org.xerial.relation.query.StreamAmoebaJoin;
import org.xerial.relation.schema.Schema;
import org.xerial.util.bean.TypeInformation;
+import org.xerial.util.log.Logger;
import org.xerial.util.tree.TreeWalker;
/**
*/
public class ObjectMapper
{
+ private static Logger _logger = Logger.getLogger(ObjectMapper.class);
private HashMap<Long, Object> objectHolder = new HashMap<Long, Object>();
public ObjectMapper()
throw new XerialError(XerialErrorCode.INVALID_INPUT, "null object");
QuerySet qs = buildQuery(object.getClass());
+
+ // set the root object
+ objectHolder.put(0L, object);
+
StreamAmoebaJoin aj = new StreamAmoebaJoin(qs, new RelationExtracter());
aj.sweep(walker);
return object;
QuerySet qs = new QuerySet();
ObjectLens lens = ObjectLens.getObjectLens(targetType);
+ if (_logger.isDebugEnabled())
+ _logger.debug(String.format("class %s\n%s", targetType.getSimpleName(), lens));
for (ParameterSetter each : lens.getSetterList())
{
}\r
\r
@Override\r
+ public String toString()\r
+ {\r
+ return String.format("[%s, %s]", coreNodeName, attributeNodeName);\r
+ }\r
+\r
+ @Override\r
public boolean equals(Object obj)\r
{\r
RelationSetter other = RelationSetter.class.cast(obj);\r