ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.arJoinCollection.php
Go to the documentation of this file.
1 <?php
2 require_once(dirname(__FILE__) . '/../Statement/class.arStatementCollection.php');
3 require_once('class.arJoin.php');
4 
12 {
13 
17  protected $table_names = array();
18 
19 
25  public function getSaveTableName(arJoin $statement)
26  {
27  $table_name = $statement->getTableName();
28  if (in_array($table_name, $this->table_names)) {
29  $vals = array_count_values($this->table_names);
30  $next = $vals[$table_name] + 1;
31  $statement->setFullNames(true);
32  $statement->setIsMapped(true);
33 
34  return $table_name . '_' . $next;
35  } else {
36  return $table_name;
37  }
38  }
39 
40 
44  public function add(arStatement $statement)
45  {
46  $statement->setTableNameAs($this->getSaveTableName($statement));
47  $this->table_names[] = $statement->getTableName();
48  parent::add($statement);
49  }
50 
51 
55  public function asSQLStatement()
56  {
57  $return = '';
58  if ($this->hasStatements()) {
59  foreach ($this->getJoins() as $join) {
60  $return .= $join->asSQLStatement($this->getAr());
61  }
62  }
63 
64  return $return;
65  }
66 
67 
68 
72  public function getJoins()
73  {
74  return $this->statements;
75  }
76 }
Class arStatementCollection.
Class arJoin.
setTableNameAs($table_name_as)
setIsMapped($is_mapped)
getTableName()
Class arStatement.
setFullNames($full_names)
getSaveTableName(arJoin $statement)
add()
Definition: add.php:2
Class arJoinCollection.
add(arStatement $statement)