OSDN Git Service

git-svn-id: http://www.xerial.org/svn/project/XerialJ/trunk/xerial-core@3304 ae02f08e...
authorleo <leo@ae02f08e-27ec-0310-ae8c-8ba02fe2eafd>
Tue, 19 May 2009 05:01:43 +0000 (05:01 +0000)
committerleo <leo@ae02f08e-27ec-0310-ae8c-8ba02fe2eafd>
Tue, 19 May 2009 05:01:43 +0000 (05:01 +0000)
src/main/java/org/xerial/lens/ObjectLens.java
src/main/java/org/xerial/lens/ObjectMapper.java
src/main/java/org/xerial/lens/ParameterSetter.java
src/main/java/org/xerial/lens/RelationSetter.java

index ab64eab..de3df0a 100644 (file)
@@ -81,6 +81,12 @@ public class ObjectLens
         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
@@ -168,7 +174,7 @@ public class ObjectLens
         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
index a1b7662..8e7417d 100644 (file)
@@ -36,6 +36,7 @@ import org.xerial.relation.query.QuerySet;
 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;
 
 /**
@@ -46,6 +47,7 @@ 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()
@@ -67,6 +69,10 @@ public class 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;
@@ -83,6 +89,8 @@ public class ObjectMapper
         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())
         {
 
index 9fc3df0..ffd597b 100644 (file)
@@ -54,6 +54,12 @@ public abstract class ParameterSetter
         return targetClass;\r
     }\r
 \r
+    @Override\r
+    public String toString()\r
+    {\r
+        return parameterName;\r
+    }\r
+\r
     public String getParameterName()\r
     {\r
         return parameterName;\r
index 740e26b..c2bffac 100644 (file)
@@ -55,6 +55,12 @@ public abstract class RelationSetter
     }\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