Skip to content

Commit 83258d7

Browse files
author
Vladimir Kotal
committed
override RepositoryInfo.equals() so that removeAll() works for Project Message
fixes #1886
1 parent 1a78b03 commit 83258d7

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

src/org/opensolaris/opengrok/history/RepositoryInfo.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,4 +215,20 @@ public String getCurrentVersion() {
215215
public void setCurrentVersion(String currentVersion) {
216216
this.currentVersion = currentVersion;
217217
}
218+
219+
@Override
220+
public boolean equals(Object obj) {
221+
if (!(obj instanceof RepositoryInfo)) {
222+
return false;
223+
}
224+
225+
RepositoryInfo ri = (RepositoryInfo) obj;
226+
227+
// Directory paths should be unique.
228+
if (ri.getDirectoryNameRelative() != null && this.getDirectoryNameRelative() != null) {
229+
return ri.getDirectoryNameRelative().equals(this.getDirectoryNameRelative());
230+
} else {
231+
return (ri.getDirectoryNameRelative() == null && this.getDirectoryNameRelative() == null);
232+
}
233+
}
218234
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* CDDL HEADER START
3+
*
4+
* The contents of this file are subject to the terms of the
5+
* Common Development and Distribution License (the "License").
6+
* You may not use this file except in compliance with the License.
7+
*
8+
* See LICENSE.txt included in this distribution for the specific
9+
* language governing permissions and limitations under the License.
10+
*
11+
* When distributing Covered Code, include this CDDL HEADER in each
12+
* file and include the License file at LICENSE.txt.
13+
* If applicable, add the following below this CDDL HEADER, with the
14+
* fields enclosed by brackets "[]" replaced with your own identifying
15+
* information: Portions Copyright [yyyy] [name of copyright owner]
16+
*
17+
* CDDL HEADER END
18+
*/
19+
20+
/*
21+
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
22+
*/
23+
package org.opensolaris.opengrok.history;
24+
25+
import static org.junit.Assert.assertEquals;
26+
import static org.junit.Assert.assertNotEquals;
27+
import org.junit.Before;
28+
import org.junit.Test;
29+
import org.opensolaris.opengrok.configuration.RuntimeEnvironment;
30+
31+
/**
32+
*
33+
* @author Vladimir Kotal
34+
*/
35+
public class RepositoryInfoTest {
36+
@Before
37+
public void setUp() {
38+
RuntimeEnvironment.getInstance().setSourceRoot("/src");
39+
}
40+
41+
@Test
42+
public void testEquals() {
43+
String repoDirectory = "/src/foo";
44+
45+
RepositoryInfo ri1 = new RepositoryInfo();
46+
ri1.setDirectoryName(repoDirectory);
47+
ri1.setBranch("branch1");
48+
49+
RepositoryInfo ri2 = new RepositoryInfo();
50+
assertNotEquals(ri1, ri2);
51+
52+
ri2.setDirectoryName(repoDirectory);
53+
assertEquals(ri1, ri2);
54+
}
55+
}

0 commit comments

Comments
 (0)