[Git][java-team/dirgra][master] 10 commits: d/watch: update to v5 format
Jérôme Charaoui (@lavamind)
gitlab at salsa.debian.org
Wed Aug 26 04:01:29 BST 2026
Jérôme Charaoui pushed to branch master at Debian Java Maintainers / dirgra
Commits:
fdbf7d3d by Jérôme Charaoui at 2026-08-25T15:47:16-04:00
d/watch: update to v5 format
- - - - -
23839d2b by Jérôme Charaoui at 2026-08-25T15:47:40-04:00
New upstream version 0.6
- - - - -
8723a5b6 by Jérôme Charaoui at 2026-08-25T15:47:42-04:00
Update upstream source from tag 'upstream/0.6'
Update to upstream version '0.6'
with Debian dir 31db945b6a64c38285c1bd998b7a798fc4bd6b6c
- - - - -
c60ce7a4 by Jérôme Charaoui at 2026-08-25T15:49:47-04:00
run wrap-and-sort -bastk
- - - - -
7119bbde by Jérôme Charaoui at 2026-08-25T15:50:09-04:00
d/control: build using headless jdk
- - - - -
102a1d9b by Jérôme Charaoui at 2026-08-25T19:50:29+00:00
Remove redundant Priority: optional from source stanza.
Changes-By: lintian-brush
Fixes: lintian: source: redundant-priority-optional-field
See-also: https://lintian.debian.org/tags/redundant-priority-optional-field.html
- - - - -
7211b18a by Jérôme Charaoui at 2026-08-25T19:50:29+00:00
Update standards version to 4.7.4, no changes needed.
Upgrade checklist verified:
4.6.2 → 4.7.0:
* Package does not use dpkg-divert
4.7.0 → 4.7.1:
* Package does not install to non-/usr paths
4.7.3 → 4.7.4:
* Package is not in non-free-firmware
Changes-By: lintian-brush
Fixes: lintian: source: ancient-standards-version 4.6.2 (released 2022-12-17) (current is 4.7.4.1)
See-also: https://lintian.debian.org/tags/ancient-standards-version.html
- - - - -
6e149031 by Jérôme Charaoui at 2026-08-25T19:50:29+00:00
Removed Rules-Requires-Root
Changes-By: lintian-brush
Fixes: lintian: source: redundant-rules-requires-root-no-field [debian/control]
See-also: https://lintian.debian.org/tags/redundant-rules-requires-root-no-field.html
- - - - -
5372d482 by Jérôme Charaoui at 2026-08-25T15:51:42-04:00
d/upstream: add metadata
- - - - -
cfded3bf by Jérôme Charaoui at 2026-08-25T21:54:51-04:00
Update changelog for 0.6-1 release
- - - - -
23 changed files:
- README.md
- debian/changelog
- debian/control
- + debian/upstream/metadata
- debian/watch
- pom.xml
- spec/data_iterator_spec.rb
- spec/directed_graph_spec.rb
- spec/edge_spec.rb
- spec/edge_type_iterator_spec.rb
- spec/helpers/edge_helpers.rb
- + spec/helpers/load_dirgra.rb
- spec/helpers/vertex_helpers.rb
- spec/helpers/vertex_id_helper.rb
- spec/vertex_spec.rb
- src/org/jruby/dirgra/DataIterable.java
- src/org/jruby/dirgra/DataIterator.java
- src/org/jruby/dirgra/DirectedGraph.java
- src/org/jruby/dirgra/Edge.java
- src/org/jruby/dirgra/EdgeTypeIterable.java
- src/org/jruby/dirgra/EdgeTypeIterator.java
- src/org/jruby/dirgra/ExplicitVertexID.java
- src/org/jruby/dirgra/Vertex.java
Changes:
=====================================
README.md
=====================================
@@ -1,14 +1,14 @@
-= Simple Directed Graph Implementation
+# Dirgra: Simple Directed Graph
-= Building
+## Building
```text
% mvn package
```
-= Testing
+## Testing
```text
-% jruby -Itarget rspec
+% jruby -S rspec
```
=====================================
debian/changelog
=====================================
@@ -1,3 +1,17 @@
+dirgra (0.6-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream version 0.6
+ * d/control: build using headless jdk
+ * d/upstream: add metadata
+ * d/watch: update to v5 format
+ * Remove redundant Priority: optional from source stanza.
+ * Update standards version to 4.7.4, no changes needed.
+ * Removed Rules-Requires-Root
+ * run wrap-and-sort -bastk
+
+ -- Jérôme Charaoui <jerome at riseup.net> Tue, 25 Aug 2026 15:54:03 -0400
+
dirgra (0.4-2) unstable; urgency=medium
* Fix typo in d/watch file. Also update this file to use special string
=====================================
debian/control
=====================================
@@ -1,26 +1,28 @@
Source: dirgra
Section: java
-Priority: optional
Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
-Uploaders: Miguel Landaeta <nomadium at debian.org>
-Build-Depends: debhelper-compat (= 13),
- default-jdk,
- javahelper,
- junit4,
- libmaven-javadoc-plugin-java,
- libmaven-source-plugin-java,
- maven-debian-helper,
- maven-repo-helper
-Standards-Version: 4.6.2
+Uploaders:
+ Miguel Landaeta <nomadium at debian.org>,
+Build-Depends:
+ debhelper-compat (= 13),
+ default-jdk-headless,
+ javahelper,
+ junit4,
+ libmaven-javadoc-plugin-java,
+ libmaven-source-plugin-java,
+ maven-debian-helper,
+ maven-repo-helper,
+Standards-Version: 4.7.4
Homepage: https://github.com/jruby/dirgra
Vcs-Git: https://salsa.debian.org/java-team/dirgra.git
Vcs-Browser: https://salsa.debian.org/java-team/dirgra
-Rules-Requires-Root: no
Package: libdirgra-java
Architecture: all
Multi-Arch: foreign
-Depends: ${misc:Depends}, ${maven:Depends}
+Depends:
+ ${maven:Depends},
+ ${misc:Depends},
Description: Java library providing a simple directed graph implementation
A directed graph (or digraph) is a graph (that is a set of vertices
connected by edges), where the edges have a direction associated with
@@ -33,8 +35,10 @@ Package: libdirgra-java-doc
Architecture: all
Multi-Arch: foreign
Section: doc
-Depends: ${misc:Depends}
-Suggests: libdirgra-java
+Depends:
+ ${misc:Depends},
+Suggests:
+ libdirgra-java,
Description: Documentation for dirgra
A directed graph (or digraph) is a graph (that is a set of vertices
connected by edges), where the edges have a direction associated with
=====================================
debian/upstream/metadata
=====================================
@@ -0,0 +1,5 @@
+---
+Bug-Database: https://github.com/jruby/dirgra/issues
+Bug-Submit: https://github.com/jruby/dirgra/issues/new
+Repository: https://github.com/jruby/dirgra.git
+Repository-Browse: https://github.com/jruby/dirgra
=====================================
debian/watch
=====================================
@@ -1,3 +1,4 @@
-version=4
-https://github.com/jruby/@PACKAGE@/tags \
- /jruby/@PACKAGE@/archive/refs/tags/@ANY_VERSION@@ARCHIVE_EXT@
+Version: 5
+Template: GitHub
+Owner: jruby
+Project: dirgra
=====================================
pom.xml
=====================================
@@ -1,11 +1,10 @@
<?xml version="1.0" ?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jruby</groupId>
<artifactId>dirgra</artifactId>
<packaging>jar</packaging>
- <version>0.4-SNAPSHOT</version>
+ <version>0.6</version>
<name>Dirgra</name>
<url>https://github.com/jruby/dirgra</url>
<description>Simple Directed Graph</description>
@@ -18,8 +17,9 @@
<scm>
<connection>scm:git:https://github.com/jruby/dirgra.git</connection>
- <developerConnection>scm:git:https://github.com/jruby/dirgra.git</developerConnection>
- <url>http://github.com/jruby/dirgra</url>
+ <developerConnection>scm:git:git at github.com:jruby/dirgra.git</developerConnection>
+ <url>https://github.com/jruby/dirgra</url>
+ <tag>dirgra-0.6</tag>
</scm>
<licenses>
=====================================
spec/data_iterator_spec.rb
=====================================
@@ -1,9 +1,9 @@
-require 'dirgra-0.3.jar'
-import 'org.jruby.dirgra.DirectedGraph'
-import 'org.jruby.dirgra.DataIterator'
-import 'java.util.NoSuchElementException'
+require_relative 'helpers/vertex_id_helper'
+
+java_import 'org.jruby.dirgra.DirectedGraph'
+java_import 'org.jruby.dirgra.DataIterator'
+java_import 'java.util.NoSuchElementException'
-require 'vertex_id_helper'
describe "DataIterator" do
let(:graph) { DirectedGraph.new }
@@ -135,12 +135,12 @@ describe "DataIterator" do
end
it "throws NoSuchElementException for source data" do
- iterator = DataIterator.new(@empty_graph.edges.to_array, 0, "foo", true, false)
+ iterator = DataIterator.new(@empty_graph.edges.to_a, 0, "foo", true, false)
expect { iterator.next }.to raise_error NoSuchElementException
end
it "throws NoSuchElementException for destination data" do
- iterator = DataIterator.new(@empty_graph.edges.to_array, 0, "foo", false, false)
+ iterator = DataIterator.new(@empty_graph.edges.to_a, 0, "foo", false, false)
expect { iterator.next }.to raise_error NoSuchElementException
end
end
@@ -149,7 +149,7 @@ describe "DataIterator" do
describe "remove" do
it "throws UnsupportedOperationException exception" do
- iterator = DataIterator.new(graph.edges.to_array, 0, "foo", true, false)
+ iterator = DataIterator.new(graph.edges.to_a, 0, "foo", true, false)
expect { iterator.remove }.to raise_error Java::JavaLang::UnsupportedOperationException
end
end
=====================================
spec/directed_graph_spec.rb
=====================================
@@ -1,7 +1,6 @@
-require 'dirgra-0.3.jar'
-import 'org.jruby.dirgra.DirectedGraph'
+require_relative 'helpers/vertex_id_helper'
-require 'vertex_id_helper'
+java_import 'org.jruby.dirgra.DirectedGraph'
# This is spec for Directed Graph Library
=====================================
spec/edge_spec.rb
=====================================
@@ -1,10 +1,8 @@
-require 'dirgra-0.3.jar'
+require_relative 'helpers/vertex_id_helper'
-import 'org.jruby.dirgra.Edge'
-import 'org.jruby.dirgra.Vertex'
-import 'org.jruby.dirgra.DirectedGraph'
-
-require 'vertex_id_helper'
+java_import 'org.jruby.dirgra.Edge'
+java_import 'org.jruby.dirgra.Vertex'
+java_import 'org.jruby.dirgra.DirectedGraph'
describe "Edge" do
=====================================
spec/edge_type_iterator_spec.rb
=====================================
@@ -1,13 +1,9 @@
-$LOAD_PATH.unshift File.dirname(__FILE__) + "/helpers"
+require_relative 'helpers/vertex_id_helper'
+require_relative 'helpers/edge_helpers'
-require 'dirgra-0.3.jar'
-
-require 'edge_helpers'
-require 'vertex_id_helper'
-
-import 'org.jruby.dirgra.DirectedGraph'
-import 'org.jruby.dirgra.EdgeTypeIterator'
-import 'java.util.NoSuchElementException'
+java_import 'org.jruby.dirgra.DirectedGraph'
+java_import 'org.jruby.dirgra.EdgeTypeIterator'
+java_import 'java.util.NoSuchElementException'
describe "EdgeTypeIterable" do
@@ -125,7 +121,7 @@ describe "EdgeTypeIterable" do
context "when the iterator does not have next edge" do
it "throws NoSuchElementException" do
empty_graph = DirectedGraph.new
- iterator = EdgeTypeIterator.new(empty_graph.edges().to_array(), 0, "foo", false)
+ iterator = EdgeTypeIterator.new(empty_graph.edges.to_a, 0, "foo", false)
expect { iterator.next }.to raise_error NoSuchElementException
end
end
=====================================
spec/helpers/edge_helpers.rb
=====================================
@@ -1,8 +1,6 @@
require 'java'
-require 'dirgra-0.3.jar'
-
-import 'org.jruby.dirgra.Edge'
+java_import 'org.jruby.dirgra.Edge'
class EdgeType
=====================================
spec/helpers/load_dirgra.rb
=====================================
@@ -0,0 +1,11 @@
+files = Dir["#{__dir__}/../../target/*.jar"].find_all do |file|
+ file !~ /source|javadoc/
+end
+
+if files.length == 0
+ exit "You have no dirgra releases in target. Please run `mvn package`"
+elsif files.length != 1
+ exit "You have multiple dirgra releases in target. Please clean up your workspace"
+end
+
+require_relative files[0]
=====================================
spec/helpers/vertex_helpers.rb
=====================================
@@ -1,4 +1,6 @@
-import 'org.jruby.dirgra.Vertex'
+require_relative 'load_dirgra'
+
+java_import 'org.jruby.dirgra.Vertex'
class DegreeMatcher
=====================================
spec/helpers/vertex_id_helper.rb
=====================================
@@ -1,3 +1,4 @@
+require_relative 'load_dirgra'
class VertexID
include org.jruby.dirgra.ExplicitVertexID
@@ -26,5 +27,5 @@ def remove_edge(vertex1, vertex2)
end
def edges
- [graph.edges.to_array, @edge_count]
+ [graph.edges.to_a, @edge_count]
end
=====================================
spec/vertex_spec.rb
=====================================
@@ -1,11 +1,8 @@
-$LOAD_PATH.unshift File.dirname(__FILE__) + "/helpers"
+require_relative 'helpers/vertex_helpers'
+require_relative 'helpers/edge_helpers'
-require 'dirgra-0.3.jar'
-require 'vertex_helpers'
-require 'edge_helpers'
-
-import 'org.jruby.dirgra.DirectedGraph'
-import 'org.jruby.dirgra.Vertex'
+java_import 'org.jruby.dirgra.DirectedGraph'
+java_import 'org.jruby.dirgra.Vertex'
describe "Vertex" do
=====================================
src/org/jruby/dirgra/DataIterable.java
=====================================
@@ -4,14 +4,14 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
-public class DataIterable<T extends ExplicitVertexID> implements Iterable<T> {
- private Edge<T>[] edges;
+public class DataIterable<T extends ExplicitVertexID, U> implements Iterable<T> {
+ private Edge<T, U>[] edges;
private int edgesLength;
private Object type;
private boolean negate;
private boolean source;
- public DataIterable(Edge<T>[] edges, int edgesLength, Object type, boolean source, boolean negate) {
+ public DataIterable(Edge<T, U>[] edges, int edgesLength, Object type, boolean source, boolean negate) {
this.edges = edges;
this.edgesLength = edgesLength;
this.type = type;
@@ -21,6 +21,6 @@ public class DataIterable<T extends ExplicitVertexID> implements Iterable<T> {
@Override
public Iterator<T> iterator() {
- return new DataIterator<T>(edges, edgesLength, type, source, negate);
+ return new DataIterator<T, U>(edges, edgesLength, type, source, negate);
}
}
=====================================
src/org/jruby/dirgra/DataIterator.java
=====================================
@@ -3,8 +3,8 @@ package org.jruby.dirgra;
import java.util.Iterator;
import java.util.NoSuchElementException;
-public class DataIterator<T extends ExplicitVertexID> implements Iterator<T> {
- private Edge<T>[] edges;
+public class DataIterator<T extends ExplicitVertexID, U> implements Iterator<T> {
+ private Edge<T, U>[] edges;
private int edgesLength;
private int edgeIteratorIndex;
private Object type;
@@ -12,7 +12,7 @@ public class DataIterator<T extends ExplicitVertexID> implements Iterator<T> {
private boolean source;
private boolean negate;
- public DataIterator(Edge<T>[] edges, int edgesLength, Object type, boolean source, boolean negate) {
+ public DataIterator(Edge<T, U>[] edges, int edgesLength, Object type, boolean source, boolean negate) {
this.edges = edges;
this.edgesLength = edgesLength;
this.edgeIteratorIndex = 0;
@@ -52,7 +52,7 @@ public class DataIterator<T extends ExplicitVertexID> implements Iterator<T> {
@Override
public T next() {
if (hasNext()) {
- Edge<T> tmp = nextEdge;
+ Edge<T, U> tmp = nextEdge;
nextEdge = null;
return source ? tmp.getSource().getData() : tmp.getDestination().getData();
}
=====================================
src/org/jruby/dirgra/DirectedGraph.java
=====================================
@@ -7,28 +7,28 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-public class DirectedGraph<T extends ExplicitVertexID> {
- private static int INITIAL_SIZE = 4;
+public class DirectedGraph<T extends ExplicitVertexID, U> {
+ private static final int INITIAL_SIZE = 4;
- private Map<T, Vertex<T>> vertices = new HashMap<T, Vertex<T>>();
- private Edge<T>[] edges = new Edge[INITIAL_SIZE];
+ private final Map<T, Vertex<T, U>> vertices = new HashMap<>();
+ private Edge<T, U>[] edges = new Edge[INITIAL_SIZE];
private int edgeLength = 0;
private ArrayList inOrderVerticeData = new ArrayList();
int vertexIDCounter = 0;
- protected Edge<T>[] growEdges(Edge<T>[] array, int realLength) {
+ protected Edge<T, U>[] growEdges(Edge<T, U>[] array, int realLength) {
int newLength = array.length == 0 ? 2 : array.length * 2;
- Edge<T>[] newEdges = new Edge[newLength];
+ Edge<T, U>[] newEdges = new Edge[newLength];
System.arraycopy(array, 0, newEdges, 0, realLength);
return newEdges;
}
- protected Edge<T>[] getEdges() {
+ protected Edge<T, U>[] getEdges() {
return edges;
}
- protected Edge<T> addEdge(Edge<T> newEdge) {
+ protected Edge<T, U> addEdge(Edge<T, U> newEdge) {
for (int i = 0; i < edgeLength; i++) {
// Edge already added. No repeated edge support.
if (edges[i].equals(newEdge)) return newEdge;
@@ -40,7 +40,7 @@ public class DirectedGraph<T extends ExplicitVertexID> {
return newEdge;
}
- public void removeEdge(Edge<T> edge) {
+ public void removeEdge(Edge<T, U> edge) {
int splitPoint = -1;
for (int i = 0; i < edgeLength; i++) {
@@ -51,7 +51,7 @@ public class DirectedGraph<T extends ExplicitVertexID> {
}
if (splitPoint != -1) {
- Edge<T> edgeToRemove = edges[splitPoint];
+ Edge<T, U> edgeToRemove = edges[splitPoint];
if (splitPoint < edgeLength - 1) { // somewhere between index 0 and edgeLength-2
System.arraycopy(edges, splitPoint + 1, edges, splitPoint, edgeLength - 1 - splitPoint);
}
@@ -64,16 +64,16 @@ public class DirectedGraph<T extends ExplicitVertexID> {
}
}
- public Collection<Vertex<T>> vertices() {
+ public Collection<Vertex<T, U>> vertices() {
return vertices.values();
}
- public Collection<Edge<T>> edges() {
+ public Collection<Edge<T, U>> edges() {
return Arrays.asList(Arrays.copyOf(edges, edgeLength));
}
- public Iterable<Edge<T>> edgesOfType(Object type) {
- return new EdgeTypeIterable<T>(edges, edgeLength, type);
+ public Iterable<Edge<T, U>> edgesOfType(U type) {
+ return new EdgeTypeIterable<T, U>(edges, edgeLength, type);
}
public Collection<T> allData() {
@@ -87,7 +87,7 @@ public class DirectedGraph<T extends ExplicitVertexID> {
return inOrderVerticeData;
}
- public void addEdge(T source, T destination, Object type) {
+ public void addEdge(T source, T destination, U type) {
findOrCreateVertexFor(source).addEdgeTo(destination, type);
}
@@ -102,7 +102,7 @@ public class DirectedGraph<T extends ExplicitVertexID> {
}
}
- public Vertex<T> findVertexFor(T data) {
+ public Vertex<T, U> findVertexFor(T data) {
return vertices.get(data);
}
@@ -112,7 +112,7 @@ public class DirectedGraph<T extends ExplicitVertexID> {
* @param data to find a vertex for
* @return vertex for given data. If vertex is not present it creates vertex and returns it.
*/
- public Vertex<T> findOrCreateVertexFor(T data) {
+ public Vertex<T, U> findOrCreateVertexFor(T data) {
Vertex vertex = vertices.get(data);
if (vertex != null) return vertex;
@@ -145,9 +145,9 @@ public class DirectedGraph<T extends ExplicitVertexID> {
public String toString() {
StringBuilder buf = new StringBuilder();
- ArrayList<Vertex<T>> verts = new ArrayList<Vertex<T>>(vertices.values());
+ ArrayList<Vertex<T, U>> verts = new ArrayList<>(vertices.values());
Collections.sort(verts);
- for (Vertex<T> vertex: verts) {
+ for (Vertex<T, U> vertex: verts) {
buf.append(vertex);
}
=====================================
src/org/jruby/dirgra/Edge.java
=====================================
@@ -1,25 +1,25 @@
package org.jruby.dirgra;
-public class Edge<T extends ExplicitVertexID> {
- private Vertex<T> source;
- private Vertex<T> destination;
- private Object type;
+public class Edge<T extends ExplicitVertexID, U> {
+ private Vertex<T, U> source;
+ private Vertex<T, U> destination;
+ private U type;
- public Edge(Vertex<T> source, Vertex<T> destination, Object type) {
+ public Edge(Vertex<T, U> source, Vertex<T, U> destination, U type) {
this.source = source;
this.destination = destination;
this.type = type;
}
- public Vertex<T> getDestination() {
+ public Vertex<T, U> getDestination() {
return destination;
}
- public Vertex<T> getSource() {
+ public Vertex<T, U> getSource() {
return source;
}
- public Object getType() {
+ public U getType() {
return type;
}
=====================================
src/org/jruby/dirgra/EdgeTypeIterable.java
=====================================
@@ -4,18 +4,18 @@ import java.util.Collection;
import java.util.Iterator;
import java.util.Set;
-public class EdgeTypeIterable<T extends ExplicitVertexID> implements Iterable<Edge<T>> {
- private Edge<T>[] edges;
+public class EdgeTypeIterable<T extends ExplicitVertexID, U> implements Iterable<Edge<T, U>> {
+ private Edge<T, U>[] edges;
int edgesLength;
private Object type;
private boolean negate;
- public EdgeTypeIterable(Edge<T>[] edges, int edgesLength, Object type) {
+ public EdgeTypeIterable(Edge<T, U>[] edges, int edgesLength, U type) {
this(edges, edgesLength, type, false);
}
- public EdgeTypeIterable(Edge<T>[] edges, int edgesLength, Object type, boolean negate) {
+ public EdgeTypeIterable(Edge<T, U>[] edges, int edgesLength, U type, boolean negate) {
this.edges = edges;
this.edgesLength = edgesLength;
this.type = type;
@@ -23,7 +23,7 @@ public class EdgeTypeIterable<T extends ExplicitVertexID> implements Iterable<Ed
}
@Override
- public Iterator<Edge<T>> iterator() {
- return new EdgeTypeIterator<T>(edges, edgesLength, type, negate);
+ public Iterator<Edge<T, U>> iterator() {
+ return new EdgeTypeIterator<T, U>(edges, edgesLength, type, negate);
}
}
=====================================
src/org/jruby/dirgra/EdgeTypeIterator.java
=====================================
@@ -5,15 +5,15 @@ import java.util.Iterator;
import java.util.NoSuchElementException;
import java.util.Set;
-public class EdgeTypeIterator<T extends ExplicitVertexID> implements Iterator<Edge<T>> {
- private Edge<T>[] edges;
+public class EdgeTypeIterator<T extends ExplicitVertexID, U> implements Iterator<Edge<T, U>> {
+ private Edge<T, U>[] edges;
private int edgesLength;
private int edgeIteratorIndex = 0;
private Object type;
private Edge nextEdge = null;
private boolean negate;
- public EdgeTypeIterator(Edge<T>[] edges, int edgesLength, Object type, boolean negate) {
+ public EdgeTypeIterator(Edge<T, U>[] edges, int edgesLength, Object type, boolean negate) {
this.edges = edges;
this.edgesLength = edgesLength;
this.type = type;
@@ -48,9 +48,9 @@ public class EdgeTypeIterator<T extends ExplicitVertexID> implements Iterator<Ed
}
@Override
- public Edge<T> next() {
+ public Edge<T, U> next() {
if (hasNext()) {
- Edge<T> tmp = nextEdge;
+ Edge<T, U> tmp = nextEdge;
nextEdge = null;
return tmp;
}
=====================================
src/org/jruby/dirgra/ExplicitVertexID.java
=====================================
@@ -1,5 +1,5 @@
package org.jruby.dirgra;
public interface ExplicitVertexID {
- public int getID();
+ int getID();
}
=====================================
src/org/jruby/dirgra/Vertex.java
=====================================
@@ -11,13 +11,13 @@ import java.util.List;
/**
*
*/
-public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>> {
+public class Vertex<T extends ExplicitVertexID, U> implements Comparable<Vertex<T, U>> {
private static final Edge[] EMPTY_EDGE_LIST = new Edge[0];
private DirectedGraph graph;
private T data;
- private Edge<T>[] incoming = EMPTY_EDGE_LIST;
+ private Edge<T, U>[] incoming = EMPTY_EDGE_LIST;
private int incomingLength = 0;
- private Edge<T>[] outgoing = EMPTY_EDGE_LIST;
+ private Edge<T, U>[] outgoing = EMPTY_EDGE_LIST;
private int outgoingLength = 0;
int id;
@@ -31,8 +31,8 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
addEdgeTo(destination, null);
}
- public void addEdgeTo(Vertex destination, Object type) {
- Edge<T> newEdge = graph.addEdge(new Edge<T>(this, destination, type));
+ public void addEdgeTo(Vertex destination, U type) {
+ Edge<T, U> newEdge = graph.addEdge(new Edge<T, U>(this, destination, type));
addOutgoingEdge(newEdge);
destination.addIncomingEdge(newEdge);
}
@@ -41,7 +41,7 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
addEdgeTo(destination, null);
}
- public void addEdgeTo(T destination, Object type) {
+ public void addEdgeTo(T destination, U type) {
Vertex destinationVertex = graph.findOrCreateVertexFor(destination);
addEdgeTo(destinationVertex, type);
@@ -59,7 +59,7 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
return false;
}
- protected void addOutgoingEdge(Edge<T> newEdge) {
+ protected void addOutgoingEdge(Edge<T, U> newEdge) {
for (int i = 0; i < outgoingLength; i++) {
// Edge already added. No repeated edge support.
if (outgoing[i].equals(newEdge)) return;
@@ -70,7 +70,7 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
outgoing[outgoingLength++] = newEdge;
}
- protected void addIncomingEdge(Edge<T> newEdge) {
+ protected void addIncomingEdge(Edge<T, U> newEdge) {
for (int i = 0; i < incomingLength; i++) {
// Edge already added. No repeated edge support.
if (incoming[i] == newEdge) return;
@@ -81,7 +81,7 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
incoming[incomingLength++] = newEdge;
}
- protected void removeOutgoingEdge(Edge<T> edge) {
+ protected void removeOutgoingEdge(Edge<T, U> edge) {
int splitIndex = -1; // which index we found the edge at
for (int i = 0; i < outgoingLength; i++) {
@@ -100,7 +100,7 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
outgoingLength--; // list is one smaller
}
- protected void removeIncomingEdge(Edge<T> edge) {
+ protected void removeIncomingEdge(Edge<T, U> edge) {
int splitIndex = -1; // which index we found the edge at
for (int i = 0; i < incomingLength; i++) {
@@ -148,95 +148,95 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
return outgoingLength;
}
- public Iterable<Edge<T>> getIncomingEdgesOfType(Object type) {
- return new EdgeTypeIterable<T>(incoming, incomingLength, type);
+ public Iterable<Edge<T, U>> getIncomingEdgesOfType(U type) {
+ return new EdgeTypeIterable<>(incoming, incomingLength, type);
}
- public Iterable<Edge<T>> getIncomingEdgesNotOfType(Object type) {
- return new EdgeTypeIterable<T>(incoming, incomingLength, type, true);
+ public Iterable<Edge<T, U>> getIncomingEdgesNotOfType(U type) {
+ return new EdgeTypeIterable<>(incoming, incomingLength, type, true);
}
- public Iterable<Edge<T>> getOutgoingEdgesOfType(Object type) {
- return new EdgeTypeIterable<T>(outgoing, outgoingLength, type);
+ public Iterable<Edge<T, U>> getOutgoingEdgesOfType(U type) {
+ return new EdgeTypeIterable<>(outgoing, outgoingLength, type);
}
public T getIncomingSourceData() {
- Edge<T> edge = getFirstEdge(getIncomingEdges().iterator());
+ Edge<T, U> edge = getFirstEdge(getIncomingEdges().iterator());
return edge == null ? null : edge.getSource().getData();
}
- public T getIncomingSourceDataOfType(Object type) {
- Edge<T> edge = getFirstEdge(getIncomingEdgesOfType(type).iterator());
+ public T getIncomingSourceDataOfType(U type) {
+ Edge<T, U> edge = getFirstEdge(getIncomingEdgesOfType(type).iterator());
return edge == null ? null : edge.getSource().getData();
}
public Iterable<T> getIncomingSourcesData() {
- return new DataIterable<T>(incoming, incomingLength, null, true, true);
+ return new DataIterable<T, U>(incoming, incomingLength, null, true, true);
}
- public Iterable<T> getIncomingSourcesDataOfType(Object type) {
- return new DataIterable<T>(incoming, incomingLength, type, true, false);
+ public Iterable<T> getIncomingSourcesDataOfType(U type) {
+ return new DataIterable<>(incoming, incomingLength, type, true, false);
}
- public Iterable<T> getIncomingSourcesDataNotOfType(Object type) {
- return new DataIterable<T>(incoming, incomingLength, type, true, true);
+ public Iterable<T> getIncomingSourcesDataNotOfType(U type) {
+ return new DataIterable<>(incoming, incomingLength, type, true, true);
}
- public Iterable<Edge<T>> getOutgoingEdgesNotOfType(Object type) {
- return new EdgeTypeIterable<T>(outgoing, outgoingLength, type, true);
+ public Iterable<Edge<T, U>> getOutgoingEdgesNotOfType(U type) {
+ return new EdgeTypeIterable<T, U>(outgoing, outgoingLength, type, true);
}
public Iterable<T> getOutgoingDestinationsData() {
- return new DataIterable<T>(outgoing, outgoingLength, null, false, true);
+ return new DataIterable<T, U>(outgoing, outgoingLength, null, false, true);
}
public Iterable<T> getOutgoingDestinationsDataOfType(Object type) {
- return new DataIterable<T>(outgoing, outgoingLength, type, false, false);
+ return new DataIterable<T, U>(outgoing, outgoingLength, type, false, false);
}
public Iterable<T> getOutgoingDestinationsDataNotOfType(Object type) {
- return new DataIterable<T>(outgoing, outgoingLength, type, false, true);
+ return new DataIterable<T, U>(outgoing, outgoingLength, type, false, true);
}
public T getOutgoingDestinationData() {
- Edge<T> edge = getFirstEdge(getOutgoingEdges().iterator());
+ Edge<T, U> edge = getFirstEdge(getOutgoingEdges().iterator());
return edge == null ? null : edge.getDestination().getData();
}
- public T getOutgoingDestinationDataOfType(Object type) {
- Edge<T> edge = getFirstEdge(getOutgoingEdgesOfType(type).iterator());
+ public T getOutgoingDestinationDataOfType(U type) {
+ Edge<T, U> edge = getFirstEdge(getOutgoingEdgesOfType(type).iterator());
return edge == null ? null : edge.getDestination().getData();
}
- private Edge<T> getFirstEdge(Iterator<Edge<T>> iterator) {
+ private Edge<T, U> getFirstEdge(Iterator<Edge<T, U>> iterator) {
return iterator.hasNext() ? iterator.next() : null;
}
- public Edge<T> getIncomingEdgeOfType(Object type) {
+ public Edge<T, U> getIncomingEdgeOfType(U type) {
return getFirstEdge(getIncomingEdgesOfType(type).iterator());
}
- public Edge<T> getOutgoingEdgeOfType(Object type) {
+ public Edge<T, U> getOutgoingEdgeOfType(U type) {
return getFirstEdge(getOutgoingEdgesOfType(type).iterator());
}
- public Edge<T> getIncomingEdge() {
+ public Edge<T, U> getIncomingEdge() {
return getFirstEdge(getIncomingEdgesNotOfType(null).iterator());
}
- public Edge<T> getOutgoingEdge() {
+ public Edge<T, U> getOutgoingEdge() {
return getFirstEdge(getOutgoingEdgesNotOfType(null).iterator());
}
- public Collection<Edge<T>> getIncomingEdges() {
+ public Collection<Edge<T, U>> getIncomingEdges() {
return Arrays.asList(Arrays.copyOf(incoming, incomingLength));
}
- public Collection<Edge<T>> getOutgoingEdges() {
+ public Collection<Edge<T, U>> getOutgoingEdges() {
return Arrays.asList(Arrays.copyOf(outgoing, outgoingLength));
}
@@ -256,13 +256,13 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
buf.append(":");
- Collection<Edge<T>> edges = getOutgoingEdges();
+ Collection<Edge<T, U>> edges = getOutgoingEdges();
int size = edges.size();
if (size > 0) {
found = true;
buf.append(">[");
- List<Edge<T>> e = new ArrayList<Edge<T>>(edges);
+ List<Edge<T, U>> e = new ArrayList<>(edges);
Collections.sort(e, new DestinationCompare());
for (int i = 0; i < size - 1; i++) {
@@ -277,7 +277,7 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
if (size > 0) {
if (found) buf.append(", ");
buf.append("<[");
- List<Edge<T>> e = new ArrayList<Edge<T>>(edges);
+ List<Edge<T, U>> e = new ArrayList<>(edges);
Collections.sort(e, new SourceCompare());
for (int i = 0; i < size - 1; i++) {
@@ -291,15 +291,15 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
}
@Override
- public int compareTo(Vertex<T> that) {
+ public int compareTo(Vertex<T, U> that) {
if (getID() == that.getID()) return 0;
if (getID() < that.getID()) return -1;
return 1;
}
- class SourceCompare implements Comparator<Edge<T>> {
+ class SourceCompare implements Comparator<Edge<T, U>> {
@Override
- public int compare(Edge<T> o1, Edge<T> o2) {
+ public int compare(Edge<T, U> o1, Edge<T, U> o2) {
int i1 = o1.getSource().getID();
int i2 = o2.getSource().getID();
@@ -308,9 +308,9 @@ public class Vertex<T extends ExplicitVertexID> implements Comparable<Vertex<T>>
}
}
- class DestinationCompare implements Comparator<Edge<T>> {
+ class DestinationCompare implements Comparator<Edge<T, U>> {
@Override
- public int compare(Edge<T> o1, Edge<T> o2) {
+ public int compare(Edge<T, U> o1, Edge<T, U> o2) {
int i1 = o1.getDestination().getID();
int i2 = o2.getDestination().getID();
View it on GitLab: https://salsa.debian.org/java-team/dirgra/-/compare/97fef2cb7e8616369c13dbb7258c0a7b07bc360b...cfded3bf24da5a3e276c803e79dcdbba73a2fd49
--
View it on GitLab: https://salsa.debian.org/java-team/dirgra/-/compare/97fef2cb7e8616369c13dbb7258c0a7b07bc360b...cfded3bf24da5a3e276c803e79dcdbba73a2fd49
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20260826/93056f7b/attachment.htm>
More information about the pkg-java-commits
mailing list