1
2
3
4
5
6
7
8
9
10
11 package org.eclipse.jgit.revwalk.filter;
12
13 import java.io.IOException;
14 import java.util.Arrays;
15
16 import org.eclipse.jgit.errors.IncorrectObjectTypeException;
17 import org.eclipse.jgit.errors.MissingObjectException;
18 import org.eclipse.jgit.revwalk.RevCommit;
19 import org.eclipse.jgit.revwalk.RevFlag;
20 import org.eclipse.jgit.revwalk.RevFlagSet;
21 import org.eclipse.jgit.revwalk.RevWalk;
22
23
24
25
26 public abstract class RevFlagFilter extends RevFilter {
27
28
29
30
31
32
33
34 public static RevFilter has(RevFlag a) {
35 final RevFlagSet/RevFlagSet.html#RevFlagSet">RevFlagSet s = new RevFlagSet();
36 s.add(a);
37 return new HasAll(s);
38 }
39
40
41
42
43
44
45
46
47 public static RevFilter hasAll(RevFlag... a) {
48 final RevFlagSetevFlagSet.html#RevFlagSet">RevFlagSet set = new RevFlagSet();
49 set.addAll(Arrays.asList(a));
50 return new HasAll(set);
51 }
52
53
54
55
56
57
58
59
60 public static RevFilter hasAll(RevFlagSet a) {
61 return new HasAll(new RevFlagSet(a));
62 }
63
64
65
66
67
68
69
70
71 public static RevFilter hasAny(RevFlag... a) {
72 final RevFlagSetevFlagSet.html#RevFlagSet">RevFlagSet set = new RevFlagSet();
73 set.addAll(Arrays.asList(a));
74 return new HasAny(set);
75 }
76
77
78
79
80
81
82
83
84 public static RevFilter hasAny(RevFlagSet a) {
85 return new HasAny(new RevFlagSet(a));
86 }
87
88 final RevFlagSet flags;
89
90 RevFlagFilter(RevFlagSet m) {
91 flags = m;
92 }
93
94
95 @Override
96 public RevFilter clone() {
97 return this;
98 }
99
100
101 @Override
102 public String toString() {
103 return super.toString() + flags;
104 }
105
106 private static class HasAll extends RevFlagFilter {
107 HasAll(RevFlagSet m) {
108 super(m);
109 }
110
111 @Override
112 public boolean include(RevWalk walker, RevCommit c)
113 throws MissingObjectException, IncorrectObjectTypeException,
114 IOException {
115 return c.hasAll(flags);
116 }
117
118 @Override
119 public boolean requiresCommitBody() {
120 return false;
121 }
122 }
123
124 private static class HasAny extends RevFlagFilter {
125 HasAny(RevFlagSet m) {
126 super(m);
127 }
128
129 @Override
130 public boolean include(RevWalk walker, RevCommit c)
131 throws MissingObjectException, IncorrectObjectTypeException,
132 IOException {
133 return c.hasAny(flags);
134 }
135
136 @Override
137 public boolean requiresCommitBody() {
138 return false;
139 }
140 }
141 }