Passed
Push — master ( abeffc...aa758d )
by Robin
03:21
created
programs/link.class.php 2 patches
Indentation   +197 added lines, -197 removed lines patch added patch discarded remove patch
@@ -72,205 +72,205 @@
 block discarded – undo
72 72
 
73 73
 
74 74
 
75
-	/**
76
-	 * @param	string	$sourceClass
77
-	 */
78
-	public function joinSource($sourceClass)
79
-	{
80
-	    if (get_class($this->sourceId) !== $sourceClass . 'Set') {
81
-    	    $this->hasOne('sourceId', $sourceClass . 'Set');
82
-    		$this->join('sourceId');
83
-	    }
84
-	}
85
-
86
-
87
-	/**
88
-	 * @param	string	$targetClass
89
-	 */
90
-	public function joinTarget($targetClass = null)
91
-	{
92
-	    if (get_class($this->targetId) !== $targetClass . 'Set') {
93
-    		$this->hasOne('targetId', $targetClass . 'Set');
94
-    		$this->join('targetId');
95
-	    }
96
-	}
97
-
98
-
99
-
100
-	public function sourceIsA($recordClass)
101
-	{
102
-		return $this->sourceClass->is($recordClass);
103
-	}
104
-
105
-	/**
106
-	 *
107
-	 * @return ORM_Iterator
108
-	 */
109
-	public function selectForSource(app_Record $object, $targetClass = null, $linkType = null)
110
-	{
111
-		$criteria = $this->sourceId->is($object->id)
75
+    /**
76
+     * @param	string	$sourceClass
77
+     */
78
+    public function joinSource($sourceClass)
79
+    {
80
+        if (get_class($this->sourceId) !== $sourceClass . 'Set') {
81
+            $this->hasOne('sourceId', $sourceClass . 'Set');
82
+            $this->join('sourceId');
83
+        }
84
+    }
85
+
86
+
87
+    /**
88
+     * @param	string	$targetClass
89
+     */
90
+    public function joinTarget($targetClass = null)
91
+    {
92
+        if (get_class($this->targetId) !== $targetClass . 'Set') {
93
+            $this->hasOne('targetId', $targetClass . 'Set');
94
+            $this->join('targetId');
95
+        }
96
+    }
97
+
98
+
99
+
100
+    public function sourceIsA($recordClass)
101
+    {
102
+        return $this->sourceClass->is($recordClass);
103
+    }
104
+
105
+    /**
106
+     *
107
+     * @return ORM_Iterator
108
+     */
109
+    public function selectForSource(app_Record $object, $targetClass = null, $linkType = null)
110
+    {
111
+        $criteria = $this->sourceId->is($object->id)
112 112
             ->_AND_($this->sourceClass->is(get_class($object)));
113 113
 
114
-		if (isset($targetClass)) {
115
-		    $this->joinTarget($targetClass);
116
-		    $criteria = $criteria->_AND_($this->targetClass->is($targetClass));
117
-		}
118
-
119
-		if (isset($linkType)) {
120
-			if (is_array($linkType)) {
121
-				$criteria = $criteria->_AND_($this->type->in($linkType));
122
-			} else {
123
-				$criteria = $criteria->_AND_($this->type->is($linkType));
124
-			}
125
-		}
126
-
127
-		if (is_a($this->targetId, 'app_TraceableRecordSet')) {
128
-			$criteria = $criteria->_AND_($this->targetId->deleted->is(false));
129
-		}
130
-
131
-		return $this->select($criteria);
132
-	}
133
-
134
-
135
-	/**
136
-	 *
137
-	 * @return ORM_Iterator
138
-	 */
139
-	public function selectForSources($objects, $targetClass, $linkType = null)
140
-	{
141
-		$sourceClass = null;
142
-		$sourceIds = array();
143
-
144
-		foreach ($objects as $obj) {
145
-			if (is_null($sourceClass)) {
146
-				$sourceClass = get_class($obj);
147
-			}
148
-			$sourceIds[] = $obj->id;
149
-		}
150
-		$criteria = $this->sourceId->in($sourceIds)
151
-			->_AND_($this->sourceClass->is($sourceClass));
152
-
153
-		if (isset($targetClass)) {
154
-		    $this->joinTarget($targetClass);
155
-		    $criteria = $criteria->_AND_($this->targetClass->is($targetClass));
156
-		}
157
-
158
-		if (isset($linkType)) {
159
-			if (is_array($linkType)) {
160
-				$criteria = $criteria->_AND_($this->type->in($linkType));
161
-			} else {
162
-				$criteria = $criteria->_AND_($this->type->is($linkType));
163
-			}
164
-		}
165
-		return $this->select($criteria);
166
-	}
167
-
168
-
169
-	/**
170
-	 *
171
-	 * @return ORM_Iterator
172
-	 */
173
-	public function selectForTarget(app_Record $object, $sourceClass = null, $linkType = null)
174
-	{
175
-		$criteria = $this->targetId->is($object->id)
176
-			->_AND_($this->targetClass->is(get_class($object)));
177
-
178
-		if (isset($sourceClass)) {
179
-		    $this->joinSource($sourceClass);
180
-			$criteria = $criteria->_AND_($this->sourceClass->is($sourceClass));
181
-		}
182
-
183
-		if (isset($linkType)) {
184
-			if (is_array($linkType)) {
185
-				$criteria = $criteria->_AND_($this->type->in($linkType));
186
-			} else {
187
-				$criteria = $criteria->_AND_($this->type->is($linkType));
188
-			}
189
-		}
190
-
191
-		return $this->select($criteria);
192
-	}
193
-
194
-
195
-	/**
196
-	 *
197
-	 * @return ORM_Iterator
198
-	 */
199
-	public function selectForTargets($objects, $sourceClass = null, $linkType = null)
200
-	{
201
-		$targetClass = null;
202
-		$targetIds = array();
203
-
204
-		foreach ($objects as $obj) {
205
-			if (is_null($targetClass)) {
206
-				$targetClass = get_class($obj);
207
-			}
208
-			$targetIds[] = $obj->id;
209
-		}
210
-		$criteria = $this->targetId->in($targetIds)
211
-			->_AND_($this->targetClass->is($targetClass));
212
-
213
-		if (isset($sourceClass)) {
214
-		    $this->joinSource($sourceClass);
215
-			$criteria = $criteria->_AND_($this->sourceClass->is($sourceClass));
216
-		}
217
-
218
-		if (isset($linkType)) {
219
-			if (is_array($linkType)) {
220
-				$criteria = $criteria->_AND_($this->type->in($linkType));
221
-			} else {
222
-				$criteria = $criteria->_AND_($this->type->is($linkType));
223
-			}
224
-		}
225
-
226
-		return $this->select($criteria);
227
-	}
228
-
229
-
230
-
231
-	/**
232
-	 * delete all links to an object
233
-	 *
234
-	 * @param	app_Record		$object
235
-	 * @param	string			$targetClass 	if target class is set, links will be deleted only for target classes
236
-	 * @param	bool			$deleteTarget	if set to true, the target will be deleted to
237
-	 */
238
-	public function deleteForSource(app_Record $object, $targetClass = null, $deleteTarget = false, $linkType = null)
239
-	{
240
-		$set = clone $this;
241
-		$App = $object->App();
242
-
243
-		$criteria = $set->sourceId->is($object->id)->_AND_(
244
-			$set->sourceClass->is(get_class($object))
245
-		);
246
-
247
-		if (null !== $targetClass) {
248
-			$criteria = $criteria->_AND_(
249
-				$set->targetClass->is($targetClass)
250
-			);
251
-		}
252
-		if (null !== $linkType) {
253
-			$criteria = $criteria->_AND_(
254
-				$set->type->is($linkType)
255
-			);
256
-		}
257
-
258
-		if ($deleteTarget) {
259
-			foreach($set->select($criteria) as $link) {
260
-
261
-				$className = $link->targetClass.'Set';
262
-
263
-				// remove prefix
264
-
265
-				$className = mb_substr($className, 1 + mb_strpos($className, '_'));
266
-				$targetSet = $App->$className();
267
-
268
-				$targetSet->delete($targetSet->id->is($link->targetId));
269
-			}
270
-		}
271
-
272
-		return $set->delete($criteria);
273
-	}
114
+        if (isset($targetClass)) {
115
+            $this->joinTarget($targetClass);
116
+            $criteria = $criteria->_AND_($this->targetClass->is($targetClass));
117
+        }
118
+
119
+        if (isset($linkType)) {
120
+            if (is_array($linkType)) {
121
+                $criteria = $criteria->_AND_($this->type->in($linkType));
122
+            } else {
123
+                $criteria = $criteria->_AND_($this->type->is($linkType));
124
+            }
125
+        }
126
+
127
+        if (is_a($this->targetId, 'app_TraceableRecordSet')) {
128
+            $criteria = $criteria->_AND_($this->targetId->deleted->is(false));
129
+        }
130
+
131
+        return $this->select($criteria);
132
+    }
133
+
134
+
135
+    /**
136
+     *
137
+     * @return ORM_Iterator
138
+     */
139
+    public function selectForSources($objects, $targetClass, $linkType = null)
140
+    {
141
+        $sourceClass = null;
142
+        $sourceIds = array();
143
+
144
+        foreach ($objects as $obj) {
145
+            if (is_null($sourceClass)) {
146
+                $sourceClass = get_class($obj);
147
+            }
148
+            $sourceIds[] = $obj->id;
149
+        }
150
+        $criteria = $this->sourceId->in($sourceIds)
151
+            ->_AND_($this->sourceClass->is($sourceClass));
152
+
153
+        if (isset($targetClass)) {
154
+            $this->joinTarget($targetClass);
155
+            $criteria = $criteria->_AND_($this->targetClass->is($targetClass));
156
+        }
157
+
158
+        if (isset($linkType)) {
159
+            if (is_array($linkType)) {
160
+                $criteria = $criteria->_AND_($this->type->in($linkType));
161
+            } else {
162
+                $criteria = $criteria->_AND_($this->type->is($linkType));
163
+            }
164
+        }
165
+        return $this->select($criteria);
166
+    }
167
+
168
+
169
+    /**
170
+     *
171
+     * @return ORM_Iterator
172
+     */
173
+    public function selectForTarget(app_Record $object, $sourceClass = null, $linkType = null)
174
+    {
175
+        $criteria = $this->targetId->is($object->id)
176
+            ->_AND_($this->targetClass->is(get_class($object)));
177
+
178
+        if (isset($sourceClass)) {
179
+            $this->joinSource($sourceClass);
180
+            $criteria = $criteria->_AND_($this->sourceClass->is($sourceClass));
181
+        }
182
+
183
+        if (isset($linkType)) {
184
+            if (is_array($linkType)) {
185
+                $criteria = $criteria->_AND_($this->type->in($linkType));
186
+            } else {
187
+                $criteria = $criteria->_AND_($this->type->is($linkType));
188
+            }
189
+        }
190
+
191
+        return $this->select($criteria);
192
+    }
193
+
194
+
195
+    /**
196
+     *
197
+     * @return ORM_Iterator
198
+     */
199
+    public function selectForTargets($objects, $sourceClass = null, $linkType = null)
200
+    {
201
+        $targetClass = null;
202
+        $targetIds = array();
203
+
204
+        foreach ($objects as $obj) {
205
+            if (is_null($targetClass)) {
206
+                $targetClass = get_class($obj);
207
+            }
208
+            $targetIds[] = $obj->id;
209
+        }
210
+        $criteria = $this->targetId->in($targetIds)
211
+            ->_AND_($this->targetClass->is($targetClass));
212
+
213
+        if (isset($sourceClass)) {
214
+            $this->joinSource($sourceClass);
215
+            $criteria = $criteria->_AND_($this->sourceClass->is($sourceClass));
216
+        }
217
+
218
+        if (isset($linkType)) {
219
+            if (is_array($linkType)) {
220
+                $criteria = $criteria->_AND_($this->type->in($linkType));
221
+            } else {
222
+                $criteria = $criteria->_AND_($this->type->is($linkType));
223
+            }
224
+        }
225
+
226
+        return $this->select($criteria);
227
+    }
228
+
229
+
230
+
231
+    /**
232
+     * delete all links to an object
233
+     *
234
+     * @param	app_Record		$object
235
+     * @param	string			$targetClass 	if target class is set, links will be deleted only for target classes
236
+     * @param	bool			$deleteTarget	if set to true, the target will be deleted to
237
+     */
238
+    public function deleteForSource(app_Record $object, $targetClass = null, $deleteTarget = false, $linkType = null)
239
+    {
240
+        $set = clone $this;
241
+        $App = $object->App();
242
+
243
+        $criteria = $set->sourceId->is($object->id)->_AND_(
244
+            $set->sourceClass->is(get_class($object))
245
+        );
246
+
247
+        if (null !== $targetClass) {
248
+            $criteria = $criteria->_AND_(
249
+                $set->targetClass->is($targetClass)
250
+            );
251
+        }
252
+        if (null !== $linkType) {
253
+            $criteria = $criteria->_AND_(
254
+                $set->type->is($linkType)
255
+            );
256
+        }
257
+
258
+        if ($deleteTarget) {
259
+            foreach($set->select($criteria) as $link) {
260
+
261
+                $className = $link->targetClass.'Set';
262
+
263
+                // remove prefix
264
+
265
+                $className = mb_substr($className, 1 + mb_strpos($className, '_'));
266
+                $targetSet = $App->$className();
267
+
268
+                $targetSet->delete($targetSet->id->is($link->targetId));
269
+            }
270
+        }
271
+
272
+        return $set->delete($criteria);
273
+    }
274 274
 
275 275
 
276 276
     /**
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -77,8 +77,8 @@  discard block
 block discarded – undo
77 77
 	 */
78 78
 	public function joinSource($sourceClass)
79 79
 	{
80
-	    if (get_class($this->sourceId) !== $sourceClass . 'Set') {
81
-    	    $this->hasOne('sourceId', $sourceClass . 'Set');
80
+	    if (get_class($this->sourceId) !== $sourceClass.'Set') {
81
+    	    $this->hasOne('sourceId', $sourceClass.'Set');
82 82
     		$this->join('sourceId');
83 83
 	    }
84 84
 	}
@@ -89,8 +89,8 @@  discard block
 block discarded – undo
89 89
 	 */
90 90
 	public function joinTarget($targetClass = null)
91 91
 	{
92
-	    if (get_class($this->targetId) !== $targetClass . 'Set') {
93
-    		$this->hasOne('targetId', $targetClass . 'Set');
92
+	    if (get_class($this->targetId) !== $targetClass.'Set') {
93
+    		$this->hasOne('targetId', $targetClass.'Set');
94 94
     		$this->join('targetId');
95 95
 	    }
96 96
 	}
@@ -256,7 +256,7 @@  discard block
 block discarded – undo
256 256
 		}
257 257
 
258 258
 		if ($deleteTarget) {
259
-			foreach($set->select($criteria) as $link) {
259
+			foreach ($set->select($criteria) as $link) {
260 260
 
261 261
 				$className = $link->targetClass.'Set';
262 262
 
Please login to merge, or discard this patch.