Author: michiel
Date: 2010-04-02 18:50:29 +0200 (Fri, 02 Apr 2010)
New Revision: 41750

Modified:
   mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/Fields.java
   
mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/implementation/BasicQuery.java
   mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/util/MapNodeManager.java
   
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/BridgeClusterQueries.java
   
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/ClusterQueries.java
   
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicSearchQuery.java
   
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicStep.java
   
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/NodeSearchQuery.java
Log:
at least compiles now

Modified: mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/Fields.java
===================================================================
--- mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/Fields.java     
2010-04-02 16:17:48 UTC (rev 41749)
+++ mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/Fields.java     
2010-04-02 16:50:29 UTC (rev 41750)
@@ -230,7 +230,6 @@
         }
     }
     public static Map<String, Field> getFieldTypes(SearchQuery query,  
NodeManager nm) {
-        return Fields.getFieldTypes(query, nm);
         Cloud cloud = nm.getCloud();
         Map<String, Field> fieldTypes = new HashMap<String, Field>();
         // code to solve the fields.
@@ -239,7 +238,7 @@
             if (name == null) {
                 name = step.getTableName();
             }
-            Field ft = new VirtualNodeManagerField(nm, UNKNOWN_NODE_TYPE, 
name);
+            Field ft = new VirtualNodeManagerField(nm, 
createSystemField(cloud, name, Field.TYPE_NODE),  name);
             fieldTypes.put(name, ft);
 
             if (allowNonQueriedFields && ! query.isAggregating()) {
@@ -272,7 +271,24 @@
     }
 
 
+    public static Field createSystemField(Cloud cloud, String name, int type) {
+        return createField(cloud, name, type, Field.TYPE_UNKNOWN, 
Field.STATE_SYSTEM, null);
+    }
+    /**
+     * Defaulting version of {...@link #createField(String, int int, int, 
DataType)} (no list item type,
+     * because it is nearly always irrelevant).
+      */
+    public static Field createField(Cloud cloud, String name, int type, int 
state, DataType dataType) {
+        return createField(cloud, name, type, Field.TYPE_UNKNOWN, state, 
dataType);
+    }
 
 
+    public static Field createField(Cloud cloud, String name, int type, int 
listItemType, int state, DataType dataType) {
+        throw new UnsupportedOperationException("TODO");
+    }
 
+
+
+
+
 }

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/implementation/BasicQuery.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/implementation/BasicQuery.java
  2010-04-02 16:17:48 UTC (rev 41749)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/implementation/BasicQuery.java
  2010-04-02 16:50:29 UTC (rev 41750)
@@ -719,9 +719,11 @@
     public String toSql() {
         try {
             //return 
MMBase.getMMBase().getSearchQueryHandler().createSqlString(query);
-            return 
cloud.getCloudContext().getSearchQueryHandler().createSqlString(query);
-        } catch (org.mmbase.storage.search.SearchQueryException sqe) {
-            return sqe.getMessage() + ": " + toString();
+            //return 
cloud.getCloudContext().getSearchQueryHandler().createSqlString(query);
+            // TODO
+            return "" + toString();
+            //        } catch (org.mmbase.storage.search.SearchQueryException 
sqe) {
+            //return sqe.getMessage() + ": " + toString();
         } catch (Exception ise) {
             return ise.getMessage() + ": " + toString();
         }

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/util/MapNodeManager.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/util/MapNodeManager.java    
    2010-04-02 16:17:48 UTC (rev 41749)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/bridge/util/MapNodeManager.java    
    2010-04-02 16:50:29 UTC (rev 41750)
@@ -54,8 +54,9 @@
     private Field mapField(String fieldName, Object value) {
         Field field = fieldTypes.get(fieldName);
         if (field == null) {
-            Field fd = Fields.createField(fieldName, Fields.classToType(value 
== null ? Object.class : value.getClass()),
-                                              Field.TYPE_UNKNOWN, 
Field.STATE_VIRTUAL, null);
+            Field fd = Fields.createField(getCloud(),
+                                          fieldName, Fields.classToType(value 
== null ? Object.class : value.getClass()),
+                                          Field.TYPE_UNKNOWN, 
Field.STATE_VIRTUAL, null);
             field = new BasicField(fd, this);
             fieldTypes.put(fieldName, field);
         }

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/BridgeClusterQueries.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/BridgeClusterQueries.java
       2010-04-02 16:17:48 UTC (rev 41749)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/BridgeClusterQueries.java
       2010-04-02 16:50:29 UTC (rev 41750)
@@ -11,9 +11,13 @@
 
 import java.util.*;
 import org.mmbase.bridge.*;
+import org.mmbase.storage.search.implementation.*;
 import org.mmbase.util.logging.*;
 
 
+/**
+ * @since MMBase-2.0
+ */
 public class BridgeClusterQueries extends ClusterQueries {
     private final Cloud cloud;
     public BridgeClusterQueries(Cloud cloud) {
@@ -38,7 +42,13 @@
         return cloud.getNode(nodeNumber).getNodeManager().getName();
     }
 
+
     @Override
+    protected int getBuilderNumber(String nodeManager) {
+        return cloud.getNodeManager(nodeManager).getNumber();
+    }
+
+    @Override
     protected String getParentBuilder(String builder) {
         NodeManager parent = cloud.getNodeManager(builder).getParent();
         return parent == null ? null : parent.getName();
@@ -52,6 +62,17 @@
             throw new IllegalArgumentException(nfe);
         }
     }
+    @Override
+    protected StepField getField(String fieldName, SearchQuery query){
+        // TODO TEST.
+        String[] split = fieldName.split(".");
+        for (StepField sf : query.getFields()) {
+            if (sf.getStep().getAlias().equals(split[0]) && 
sf.getFieldName().equals(split[1])) {
+                return sf;
+            }
+        }
+        return null;
+    }
 
     @Override
     public String getTrueTableName(String table) {
@@ -93,6 +114,9 @@
         throw new UnsupportedOperationException("Not supported yet.");
     }
 
+    protected void setConstraint(BasicSearchQuery query, String where) {
+        throw new UnsupportedOperationException("Not supported yet.");
+    }
 
 
 }

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/ClusterQueries.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/ClusterQueries.java 
    2010-04-02 16:17:48 UTC (rev 41749)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/ClusterQueries.java 
    2010-04-02 16:50:29 UTC (rev 41750)
@@ -112,6 +112,7 @@
         return table.substring(0, end );
     }
 
+
     /**
      * Returns the name part of a tablename, and convert it to a buidler name.
      * This will catch specifying a rolename in stead of a builder name when 
using relations.
@@ -530,9 +531,10 @@
         }
     }
 
-    protected abstract StepField getField(String fieldName, BasicSearchQuery 
query);
+    protected abstract StepField getField(String fieldName, SearchQuery query);
 
     protected abstract String getBuilder(int nodeNumber);
+    protected abstract int getBuilderNumber(String builderName);
     protected abstract String getParentBuilder(String builder);
 
     /**
@@ -609,9 +611,9 @@
             // FIXME this cast to BasicStep is ugly and should not be here in 
a clean implementation
 
             // Determine typedef number of the source-type.
-            int sourceType = 
((BasicStep)sourceStep).getBuilder().getObjectType();
+            int sourceType = getBuilderNumber(sourceStep.getTableName());
             // Determine the typedef number of the destination-type.
-            int destinationType = 
((BasicStep)destinationStep).getBuilder().getObjectType();
+            int destinationType = 
getBuilderNumber(destinationStep.getTableName());
 
             // Determine reldef number of the role.
             Integer role = roles.get(relationStep.getAlias());

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicSearchQuery.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicSearchQuery.java
    2010-04-02 16:17:48 UTC (rev 41749)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicSearchQuery.java
    2010-04-02 16:50:29 UTC (rev 41750)
@@ -178,6 +178,7 @@
         //log.info("copied steps " + q.getSteps() + " became " + steps);
         unmodifiableSteps = Collections.unmodifiableList(steps);
     }
+
     protected void copyFields(SearchQuery q) {
         if (! modifiable) throw new IllegalStateException("Unmodifiable");
         fields = new ArrayList<StepField>(q.getFields().size());
@@ -453,14 +454,15 @@
 
     }
 
-    // MM
-    /*
     public void  addFields(Step step) {
+        throw new UnsupportedOperationException("TODO");
+        /*
         MMBase mmb = MMBase.getMMBase();
         MMObjectBuilder builder = mmb.getBuilder(step.getTableName());
         addFields(step, builder);
+        */
     }
-    */
+
     /**
      * Add all fields of given step
      */

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicStep.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicStep.java
   2010-04-02 16:17:48 UTC (rev 41749)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/BasicStep.java
   2010-04-02 16:50:29 UTC (rev 41750)
@@ -10,7 +10,6 @@
 package org.mmbase.storage.search.implementation;
 
 import java.util.*;
-import org.mmbase.module.core.MMObjectBuilder;
 import org.mmbase.storage.search.*;
 
 /**

Modified: 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/NodeSearchQuery.java
===================================================================
--- 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/NodeSearchQuery.java
     2010-04-02 16:17:48 UTC (rev 41749)
+++ 
mmbase/trunk/bridge/src/main/java/org/mmbase/storage/search/implementation/NodeSearchQuery.java
     2010-04-02 16:50:29 UTC (rev 41750)
@@ -65,7 +65,7 @@
     }
     */
     public NodeSearchQuery(NodeManager  nodeManager) {
-        Step step = super.addStep(builder.getName());
+        Step step = super.addStep(nodeManager.getName());
         for (Field f : nodeManager.getFields(NodeManager.ORDER_CREATE)) {
             if (! f.isVirtual() && f.getType() != Field.TYPE_BINARY) {
                 addField(step, f);

_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to