~ubuntu-branches/ubuntu/oneiric/monodevelop/oneiric

« back to all changes in this revision

Viewing changes to contrib/NGit/NGit.Diff/EditList.cs

  • Committer: Bazaar Package Importer
  • Author(s): Jo Shields
  • Date: 2011-06-27 17:03:13 UTC
  • mto: (1.8.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 54.
  • Revision ID: james.westby@ubuntu.com-20110627170313-6cvz3s19x6e9hqe9
ImportĀ upstreamĀ versionĀ 2.5.92+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
This code is derived from jgit (http://eclipse.org/jgit).
 
3
Copyright owners are documented in jgit's IP log.
 
4
 
 
5
This program and the accompanying materials are made available
 
6
under the terms of the Eclipse Distribution License v1.0 which
 
7
accompanies this distribution, is reproduced below, and is
 
8
available at http://www.eclipse.org/org/documents/edl-v10.php
 
9
 
 
10
All rights reserved.
 
11
 
 
12
Redistribution and use in source and binary forms, with or
 
13
without modification, are permitted provided that the following
 
14
conditions are met:
 
15
 
 
16
- Redistributions of source code must retain the above copyright
 
17
  notice, this list of conditions and the following disclaimer.
 
18
 
 
19
- Redistributions in binary form must reproduce the above
 
20
  copyright notice, this list of conditions and the following
 
21
  disclaimer in the documentation and/or other materials provided
 
22
  with the distribution.
 
23
 
 
24
- Neither the name of the Eclipse Foundation, Inc. nor the
 
25
  names of its contributors may be used to endorse or promote
 
26
  products derived from this software without specific prior
 
27
  written permission.
 
28
 
 
29
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
 
30
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 
31
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 
32
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 
33
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 
34
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 
35
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 
36
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 
37
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 
38
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 
39
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 
40
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 
41
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
42
*/
 
43
 
 
44
using System.Collections.Generic;
 
45
using NGit.Diff;
 
46
using Sharpen;
 
47
 
 
48
namespace NGit.Diff
 
49
{
 
50
        /// <summary>
 
51
        /// Specialized list of
 
52
        /// <see cref="Edit">Edit</see>
 
53
        /// s in a document.
 
54
        /// </summary>
 
55
        public class EditList : AbstractList<Edit>
 
56
        {
 
57
                /// <summary>Construct an edit list containing a single edit.</summary>
 
58
                /// <remarks>Construct an edit list containing a single edit.</remarks>
 
59
                /// <param name="edit">the edit to return in the list.</param>
 
60
                /// <returns>
 
61
                /// list containing only
 
62
                /// <code>edit</code>
 
63
                /// .
 
64
                /// </returns>
 
65
                public static NGit.Diff.EditList Singleton(Edit edit)
 
66
                {
 
67
                        NGit.Diff.EditList res = new NGit.Diff.EditList(1);
 
68
                        res.AddItem(edit);
 
69
                        return res;
 
70
                }
 
71
 
 
72
                private readonly AList<Edit> container;
 
73
 
 
74
                /// <summary>Create a new, empty edit list.</summary>
 
75
                /// <remarks>Create a new, empty edit list.</remarks>
 
76
                public EditList()
 
77
                {
 
78
                        container = new AList<Edit>();
 
79
                }
 
80
 
 
81
                /// <summary>Create an empty edit list with the specified capacity.</summary>
 
82
                /// <remarks>Create an empty edit list with the specified capacity.</remarks>
 
83
                /// <param name="capacity">
 
84
                /// the initial capacity of the edit list. If additional edits are
 
85
                /// added to the list, it will be grown to support them.
 
86
                /// </param>
 
87
                public EditList(int capacity)
 
88
                {
 
89
                        container = new AList<Edit>(capacity);
 
90
                }
 
91
 
 
92
                public override int Count
 
93
                {
 
94
                        get
 
95
                        {
 
96
                                return container.Count;
 
97
                        }
 
98
                }
 
99
 
 
100
                public override Edit Get(int index)
 
101
                {
 
102
                        return container[index];
 
103
                }
 
104
 
 
105
                public override Edit Set(int index, Edit element)
 
106
                {
 
107
                        return container.Set(index, element);
 
108
                }
 
109
 
 
110
                public override void Add(int index, Edit element)
 
111
                {
 
112
                        container.Add(index, element);
 
113
                }
 
114
 
 
115
                public override bool AddAll<_T0>(ICollection<_T0> c)
 
116
                {
 
117
                        return Sharpen.Collections.AddAll(container, c);
 
118
                }
 
119
 
 
120
                public override Edit Remove(int index)
 
121
                {
 
122
                        return container.Remove(index);
 
123
                }
 
124
 
 
125
                public override int GetHashCode()
 
126
                {
 
127
                        return container.GetHashCode();
 
128
                }
 
129
 
 
130
                public override bool Equals(object o)
 
131
                {
 
132
                        if (o is NGit.Diff.EditList)
 
133
                        {
 
134
                                return container.Equals(((NGit.Diff.EditList)o).container);
 
135
                        }
 
136
                        return false;
 
137
                }
 
138
 
 
139
                public override string ToString()
 
140
                {
 
141
                        return "EditList" + container.ToString();
 
142
                }
 
143
        }
 
144
}