Hi guys,

can you review this patch?

do you think I should use aggregators or just use elseif sections in the
function SQLiteIndex?

thx

--Moacir
Index: Format.php
===================================================================
RCS file: /repository/phd/phpdotnet/phd/Format.php,v
retrieving revision 1.4
diff -u -r1.4 Format.php
--- Format.php  22 Jun 2009 01:22:52 -0000      1.4
+++ Format.php  2 Jul 2009 05:09:49 -0000
@@ -14,6 +14,10 @@
     protected $indexes = array();
     protected $childrens = array();
 
+    protected $refs = array();
+    protected $vars = array();
+    protected $classes = array();
+
     private static $autogen = array();
 
     /* PhDHelper */
@@ -37,8 +41,14 @@
     public function sortIDs() {
         $this->sqlite->createAggregate("indexes", array($this, "SQLiteIndex"), 
array($this, "SQLiteFinal"), 8);
         $this->sqlite->createAggregate("childrens", array($this, 
"SQLiteChildrens"), array($this, "SQLiteFinal"), 2);
+        $this->sqlite->createAggregate("refname", array($this, 
"SQLiteRefname"), array($this, "SQLiteFinal"), 2);
+        $this->sqlite->createAggregate("varname", array($this, 
"SQLiteVarname"), array($this, "SQLiteFinal"), 2);
+        $this->sqlite->createAggregate("classname", array($this, 
"SQLiteClassname"), array($this, "SQLiteFinal"), 2);
         $this->sqlite->query('SELECT indexes(docbook_id, filename, parent_id, 
sdesc, ldesc, element, previous, next) FROM ids');
         $this->sqlite->query('SELECT childrens(docbook_id, parent_id) FROM 
ids');
+        $this->sqlite->query('SELECT refname(docbook_id, sdesc) FROM ids WHERE 
element=\'refentry\'');
+        $this->sqlite->query('SELECT varname(docbook_id, sdesc) FROM ids WHERE 
element=\'phpdoc:varentry\'');
+        $this->sqlite->query('SELECT classname(docbook_id, sdesc) FROM ids 
WHERE element=\'phpdoc:exceptionref\' OR element=\'phpdoc:classref\'');
     }
 
     public function SQLiteIndex(&$context, $index, $id, $filename, $parent, 
$sdesc, $ldesc, $element, $previous, $next) {
@@ -52,10 +62,6 @@
             "previous"   => $previous,
             "next"       => $next
         );
+/*
+        if ($element == "refentry") {
+            $ref = strtolower(str_replace(array("_", "::", "->"), array("-", 
"-", "-"), $sdesc));
+            $this->refs[$sdesc] = $id;
+        } elseif ($element == "phpdoc:varentry") {
+            $this->vars[$sdesc] = $id;
+        } elseif ($element == "phpdoc:exceptionref" || element == 
"phpdoc:classref") {
+            $this->classes[strtolower($sdesc)] = $id;
+        }
+*/
     }
 
     public function SQLiteChildrens(&$context, $index, $id, $parent) {
@@ -65,6 +71,19 @@
         $this->childrens[$parent][] = $id;
     }
 
+    public function SQLiteRefname(&$context, $index, $id, $sdesc) {
+        $ref = strtolower(str_replace(array("_", "::", "->"), array("-", "-", 
"-"), $sdesc));
+        $this->refs[$ref] = $id;
+    }
+
+    public function SQLiteVarname(&$context, $index, $id, $sdesc) {
+        $this->vars[$sdesc] = $id;
+    }
+
+    public function SQLiteClassname(&$context, $index, $id, $sdesc) {
+        $this->classes[strtolower($sdesc)] = $id;
+    }
+
     public static function SQLiteFinal(&$context) {
         return $context;
     }
@@ -75,6 +94,19 @@
             $format->update($event, $val);
         }
     }
+
+    function getRefnameLink($ref) {
+        return isset($this->refs[$ref]) ? $this->refs[$ref] : null;
+    }
+
+    public function getClassnameLink($class) {
+        return isset($this->classes[$class]) ? $this->classes[$class] : null;
+    }
+
+    public function getVarnameLink($var) {
+        return isset($this->vars[$var]) ? $this->vars[$var] : null;
+    }
+
     final public function registerElementMap(array $map) {
         $this->elementmap = $map;
     }

Reply via email to