Merge pull request #11 from bessl/patch-2
[gitphp.git] / include / git / headlist / HeadListLoad_Raw.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
/**
 * Head list load strategy using raw objects
 *
 * @author Christopher Han <xiphux@gmail.com>
 * @copyright Copyright (c) 2012 Christopher Han
 * @package GitPHP
 * @subpackage Git\HeadList
 */
class GitPHP_HeadListLoad_Raw extends GitPHP_RefListLoad_Raw implements GitPHP_HeadListLoadStrategy_Interface
{
        /**
         * Loads the head list
         *
         * @param GitPHP_HeadList $headList head list
         * @return array array of head hashes
         */
        public function Load($headList)
        {
                return $this->GetRefs($headList, 'heads');
        }
 
        /** 
         * Loads sorted heads
         *
         * @param GitPHP_HeadList $headList head list
         * @param string $order list order
         * @param integer $count number to load
         * @param integer $skip number to skip
         */
        public function LoadOrdered($headList, $order, $count = 0, $skip = 0)
        {
                if (!$headList)
                        return;
 
                if (empty($order))
                        return;
 
                $heads = $headList->GetHeads();
 
                /* TODO add different orders */
                if ($order == '-committerdate') {
                        usort($heads, array('GitPHP_Head', 'CompareAge'));
                }
 
                if ((($count > 0) && (count($heads) > $count)) || ($skip > 0)) {
                        if ($count > 0)
                                $heads = array_slice($heads, $skip, $count);
                        else
                                $heads = array_slice($heads, $skip);
                }
 
                return $heads;
        }
}
 
comments