Skip to content

Commit 86024c8

Browse files
committed
Graphs Views: prefer static EdgeSet and EdgeIter
1 parent e6d79b8 commit 86024c8

File tree

1 file changed

+25
-25
lines changed

1 file changed

+25
-25
lines changed

jgalgo-core/src/main/java/com/jgalgo/graph/Graphs.java

+25-25
Original file line numberDiff line numberDiff line change
@@ -1561,7 +1561,7 @@ public E getEdge(V source, V target) {
15611561
public EdgeSet<V, E> getEdges(V source, V target) {
15621562
if (source.equals(target))
15631563
return graph().getEdges(source, target);
1564-
return new EdgeSetSourceTarget(source, target);
1564+
return new EdgeSetSourceTarget<>(graph(), source, target);
15651565
}
15661566

15671567
@Override
@@ -1593,7 +1593,7 @@ public boolean isAllowParallelEdges() {
15931593
return true;
15941594
}
15951595

1596-
private abstract class EdgeSetBase extends AbstractSet<E> implements EdgeSet<V, E> {
1596+
private abstract static class EdgeSetBase<V, E> extends AbstractSet<E> implements EdgeSet<V, E> {
15971597

15981598
final EdgeSet<V, E> out;
15991599
final EdgeSet<V, E> in;
@@ -1638,12 +1638,12 @@ public boolean isEmpty() {
16381638
}
16391639
}
16401640

1641-
private abstract class EdgeSetOutOrInBase extends EdgeSetBase {
1641+
private abstract static class EdgeSetOutOrInBase<V, E> extends EdgeSetBase<V, E> {
16421642

16431643
final V vertex;
16441644

1645-
EdgeSetOutOrInBase(V vertex) {
1646-
super(graph().outEdges(vertex), graph().inEdges(vertex));
1645+
EdgeSetOutOrInBase(Graph<V, E> g, V vertex) {
1646+
super(g.outEdges(vertex), g.inEdges(vertex));
16471647
this.vertex = vertex;
16481648
}
16491649
}
@@ -1716,9 +1716,9 @@ public int skip(int n) {
17161716
}
17171717
}
17181718

1719-
private class EdgeSetOut extends EdgeSetOutOrInBase {
1719+
private class EdgeSetOut extends EdgeSetOutOrInBase<V, E> {
17201720
EdgeSetOut(V source) {
1721-
super(source);
1721+
super(graph(), source);
17221722
}
17231723

17241724
@Override
@@ -1743,9 +1743,9 @@ public V target() {
17431743
}
17441744
}
17451745

1746-
private class EdgeSetIn extends EdgeSetOutOrInBase {
1746+
private class EdgeSetIn extends EdgeSetOutOrInBase<V, E> {
17471747
EdgeSetIn(V target) {
1748-
super(target);
1748+
super(graph(), target);
17491749
}
17501750

17511751
@Override
@@ -1770,12 +1770,12 @@ public V target() {
17701770
}
17711771
}
17721772

1773-
private class EdgeSetSourceTarget extends EdgeSetBase {
1773+
private static class EdgeSetSourceTarget<V, E> extends EdgeSetBase<V, E> {
17741774

17751775
private final V source, target;
17761776

1777-
EdgeSetSourceTarget(V source, V target) {
1778-
super(graph().getEdges(source, target), graph().getEdges(target, source));
1777+
EdgeSetSourceTarget(Graph<V, E> g, V source, V target) {
1778+
super(g.getEdges(source, target), g.getEdges(target, source));
17791779
this.source = source;
17801780
this.target = target;
17811781
}
@@ -1787,11 +1787,11 @@ public int size() {
17871787

17881788
@Override
17891789
public EdgeIter<V, E> iterator() {
1790-
return new EdgeIterSourceTarget(source, target, out, in);
1790+
return new EdgeIterSourceTarget<>(source, target, out, in);
17911791
}
17921792
}
17931793

1794-
private class EdgeIterSourceTarget implements EdgeIter<V, E>, ObjectIterator<E> {
1794+
private static class EdgeIterSourceTarget<V, E> implements EdgeIter<V, E>, ObjectIterator<E> {
17951795

17961796
private final V source, target;
17971797
private final EdgeIter<V, E> stIt;
@@ -1893,7 +1893,7 @@ public int getEdge(int source, int target) {
18931893
public IEdgeSet getEdges(int source, int target) {
18941894
if (source == target)
18951895
return graph().getEdges(source, target);
1896-
return new EdgeSetSourceTarget(source, target);
1896+
return new EdgeSetSourceTarget(graph(), source, target);
18971897
}
18981898

18991899
@Override
@@ -1920,7 +1920,7 @@ public boolean isAllowParallelEdges() {
19201920
return true;
19211921
}
19221922

1923-
private abstract class EdgeSetBase extends AbstractIntSet implements IEdgeSet {
1923+
private abstract static class EdgeSetBase extends AbstractIntSet implements IEdgeSet {
19241924

19251925
final IEdgeSet out;
19261926
final IEdgeSet in;
@@ -1955,12 +1955,12 @@ public void clear() {
19551955
}
19561956
}
19571957

1958-
private abstract class EdgeSetOutOrInBase extends EdgeSetBase {
1958+
private abstract static class EdgeSetOutOrInBase extends EdgeSetBase {
19591959

19601960
final int vertex;
19611961

1962-
EdgeSetOutOrInBase(int vertex) {
1963-
super(graph().outEdges(vertex), graph().inEdges(vertex));
1962+
EdgeSetOutOrInBase(IntGraph g, int vertex) {
1963+
super(g.outEdges(vertex), g.inEdges(vertex));
19641964
this.vertex = vertex;
19651965
}
19661966

@@ -2041,7 +2041,7 @@ public int skip(int n) {
20412041

20422042
private class EdgeSetOut extends EdgeSetOutOrInBase {
20432043
EdgeSetOut(int source) {
2044-
super(source);
2044+
super(graph(), source);
20452045
}
20462046

20472047
@Override
@@ -2068,7 +2068,7 @@ public int targetInt() {
20682068

20692069
private class EdgeSetIn extends EdgeSetOutOrInBase {
20702070
EdgeSetIn(int target) {
2071-
super(target);
2071+
super(graph(), target);
20722072
}
20732073

20742074
@Override
@@ -2093,12 +2093,12 @@ public int targetInt() {
20932093
}
20942094
}
20952095

2096-
private class EdgeSetSourceTarget extends EdgeSetBase {
2096+
private static class EdgeSetSourceTarget extends EdgeSetBase {
20972097

20982098
private final int source, target;
20992099

2100-
EdgeSetSourceTarget(int source, int target) {
2101-
super(graph().getEdges(source, target), graph().getEdges(target, source));
2100+
EdgeSetSourceTarget(IntGraph g, int source, int target) {
2101+
super(g.getEdges(source, target), g.getEdges(target, source));
21022102
this.source = source;
21032103
this.target = target;
21042104
}
@@ -2114,7 +2114,7 @@ public IEdgeIter iterator() {
21142114
}
21152115
}
21162116

2117-
private class EdgeIterSourceTarget implements IEdgeIter {
2117+
private static class EdgeIterSourceTarget implements IEdgeIter {
21182118

21192119
private final int source, target;
21202120
private final IEdgeIter stIt;

0 commit comments

Comments
 (0)