Skip to content

Commit b6ce831

Browse files
committed
Lint fixes
Signed-off-by: Prabhu Subramanian <[email protected]>
1 parent a41dbf7 commit b6ce831

35 files changed

+495
-574
lines changed

build.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name := "overflowdb2"
22
ThisBuild / organization := "io.appthreat"
3-
ThisBuild / version := "1.0.1"
4-
ThisBuild / scalaVersion := "3.5.2"
3+
ThisBuild / version := "1.0.2"
4+
ThisBuild / scalaVersion := "3.6.4"
55
publish / skip := true
66

77
lazy val core = project.in(file("core"))

core/src/main/java/overflowdb/AdjacentNodes.java

Lines changed: 54 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -35,65 +35,69 @@ public class AdjacentNodes {
3535
* getOffset(2 * kindOffset + 1) gets the length of the relevant slice in nodesWithEdgeProperties of the desired kindOffset (get the kindOffset from layout info)
3636
*/
3737
public int getOffset(int pos){
38-
if(offsets instanceof byte[]){
39-
return ((byte[]) offsets)[pos];
40-
} else if(offsets instanceof short[]){
41-
return ((short[]) offsets)[pos];
42-
} else if (offsets instanceof int[]){
43-
return ((int[]) offsets)[pos];
44-
} else throw new RuntimeException("corrupt state: offsets of type " + offsets.getClass().getName());
38+
return switch (offsets) {
39+
case byte[] bytes -> bytes[pos];
40+
case short[] shorts -> shorts[pos];
41+
case int[] ints -> ints[pos];
42+
case null, default -> {
43+
assert offsets != null;
44+
throw new RuntimeException("corrupt state: offsets of type " + offsets.getClass().getName());
45+
}
46+
};
4547
}
4648

4749
/** Attempts to update AdjacentNodes in-place and return this; otherwise, create a new AdjacentNodes and return that.
4850
* */
4951
AdjacentNodes setOffset(int pos, int val){
50-
if(offsets instanceof byte[]) {
51-
if(val == (byte) val){
52-
((byte[]) offsets)[pos] = (byte) val;
53-
return this;
54-
} else if (val == (short) val){
55-
byte[] oldOffsets = (byte[]) offsets;
56-
short[] newOffsets = new short[oldOffsets.length];
57-
for(int i = 0; i < oldOffsets.length; i++){
58-
newOffsets[i] = oldOffsets[i];
59-
}
60-
newOffsets[pos] = (short) val;
61-
return new AdjacentNodes(nodesWithEdgeProperties, newOffsets);
62-
} else {
63-
byte[] oldOffsets = (byte[]) offsets;
64-
int[] newOffsets = new int[oldOffsets.length];
65-
for(int i = 0; i < oldOffsets.length; i++){
66-
newOffsets[i] = oldOffsets[i];
67-
}
68-
newOffsets[pos] = val;
69-
return new AdjacentNodes(nodesWithEdgeProperties, newOffsets);
52+
switch (offsets) {
53+
case byte[] oldOffsets -> {
54+
if (val == (byte) val) {
55+
oldOffsets[pos] = (byte) val;
56+
return this;
57+
} else if (val == (short) val) {
58+
short[] newOffsets = new short[oldOffsets.length];
59+
for (int i = 0; i < oldOffsets.length; i++) {
60+
newOffsets[i] = oldOffsets[i];
61+
}
62+
newOffsets[pos] = (short) val;
63+
return new AdjacentNodes(nodesWithEdgeProperties, newOffsets);
64+
} else {
65+
int[] newOffsets = new int[oldOffsets.length];
66+
for (int i = 0; i < oldOffsets.length; i++) {
67+
newOffsets[i] = oldOffsets[i];
68+
}
69+
newOffsets[pos] = val;
70+
return new AdjacentNodes(nodesWithEdgeProperties, newOffsets);
71+
}
72+
}
73+
case short[] oldOffsets -> {
74+
if (val == (short) val) {
75+
oldOffsets[pos] = (short) val;
76+
return this;
77+
} else {
78+
int[] newOffsets = new int[oldOffsets.length];
79+
for (int i = 0; i < oldOffsets.length; i++) {
80+
newOffsets[i] = oldOffsets[i];
81+
}
82+
newOffsets[pos] = val;
83+
return new AdjacentNodes(nodesWithEdgeProperties, newOffsets);
84+
}
85+
}
86+
case int[] ints -> {
87+
ints[pos] = val;
88+
return this;
89+
}
90+
default -> throw new RuntimeException("corrupt state: offsets of type " + offsets.getClass().getName());
7091
}
71-
} else if (offsets instanceof short[]){
72-
if(val == (short) val){
73-
((short[]) offsets)[pos] = (short) val;
74-
return this;
75-
} else {
76-
short[] oldOffsets = (short[]) offsets;
77-
int[] newOffsets = new int[oldOffsets.length];
78-
for(int i = 0; i < oldOffsets.length; i++){
79-
newOffsets[i] = oldOffsets[i];
80-
}
81-
newOffsets[pos] = val;
82-
return new AdjacentNodes(nodesWithEdgeProperties, newOffsets);
83-
}
84-
} else if (offsets instanceof int[]){
85-
((int[]) offsets)[pos] = val;
86-
return this;
87-
} else {
88-
throw new RuntimeException("corrupt state: offsets of type " + offsets.getClass().getName());
89-
}
9092
}
9193

9294
public int offsetLengths(){
93-
if(offsets instanceof int[]) return ((int[]) offsets).length;
94-
else if (offsets instanceof short[]) return ((short[]) offsets).length;
95-
else if (offsets instanceof byte[]) return ((byte[]) offsets).length;
96-
else throw new RuntimeException();
95+
return switch (offsets) {
96+
case int[] ints -> ints.length;
97+
case short[] shorts -> shorts.length;
98+
case byte[] bytes -> bytes.length;
99+
case null, default -> throw new RuntimeException();
100+
};
97101
}
98102

99103
}

core/src/main/java/overflowdb/BatchedUpdate.java

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,29 @@ public static AppliedDiff applyDiff(Graph graph, DiffOrBuilder diff, KeyPool key
1818
}
1919

2020
public interface KeyPool {
21-
public long next();
21+
long next();
2222
}
2323

2424
public interface DiffOrBuilder {
25-
public int size();
25+
int size();
2626

2727
Iterator<Change> iterator();
2828
}
2929

3030
public interface ModificationListener {
31-
public abstract void onAfterInitNewNode(Node node);
31+
void onAfterInitNewNode(Node node);
3232

33-
public abstract void onAfterAddNewEdge(Edge edge);
33+
void onAfterAddNewEdge(Edge edge);
3434

35-
public abstract void onBeforePropertyChange(Node node, String key);
35+
void onBeforePropertyChange(Node node, String key);
3636

37-
public abstract void onAfterPropertyChange(Node node, String key, Object value);
37+
void onAfterPropertyChange(Node node, String key, Object value);
3838

39-
public abstract void onBeforeRemoveNode(Node node);
39+
void onBeforeRemoveNode(Node node);
4040

41-
public abstract void onBeforeRemoveEdge(Edge edge);
41+
void onBeforeRemoveEdge(Edge edge);
4242

43-
public abstract void finish();
43+
void finish();
4444
}
4545

4646

@@ -144,9 +144,9 @@ public DiffGraphBuilder removeEdge(Edge edge) {
144144

145145
public static class AppliedDiff {
146146
public DiffOrBuilder diffGraph;
147-
private ModificationListener listener;
148-
private int transitiveModifications;
149-
private Graph graph;
147+
private final ModificationListener listener;
148+
private final int transitiveModifications;
149+
private final Graph graph;
150150

151151
AppliedDiff(Graph graph, DiffOrBuilder diffGraph, ModificationListener listener, int transitiveModifications) {
152152
this.graph = graph;
@@ -265,8 +265,8 @@ private Node mapDetached(DetachedNodeData detachedNode) {
265265
} else {
266266
linkedNode = graph.addNode(keyPool.next(), detachedNode.label());
267267
}
268-
} else if (linkedNode instanceof Long) {
269-
linkedNode = graph.addNode(((Long) linkedNode).longValue(), detachedNode.label());
268+
} else {
269+
linkedNode = graph.addNode((Long) linkedNode, detachedNode.label());
270270
}
271271
detachedNode.setRefOrId(linkedNode);
272272
deferredInitializers.addLast(detachedNode);
@@ -290,9 +290,8 @@ private void applyChange(Change change) {
290290
if (change instanceof DetachedNodeData) {
291291
mapDetached((DetachedNodeData) change);
292292
drainDeferred();
293-
} else if (change instanceof CreateEdge) {
293+
} else if (change instanceof CreateEdge create) {
294294
nChanges += 1;
295-
CreateEdge create = (CreateEdge) change;
296295
Node src = create.src instanceof DetachedNodeData ? mapDetached((DetachedNodeData) create.src) : (Node) create.src;
297296
Node dst = create.dst instanceof DetachedNodeData ? mapDetached((DetachedNodeData) create.dst) : (Node) create.dst;
298297
drainDeferred();
@@ -303,22 +302,19 @@ private void applyChange(Change change) {
303302
} else {
304303
src.addEdgeSilentInternal(create.label, dst, properties);
305304
}
306-
} else if (change instanceof RemoveEdge) {
305+
} else if (change instanceof RemoveEdge remove) {
307306
nChanges += 1;
308-
RemoveEdge remove = (RemoveEdge) change;
309307
if (listener != null)
310308
listener.onBeforeRemoveEdge(remove.edge);
311309
remove.edge.removeInternal();
312-
} else if (change instanceof RemoveNode) {
310+
} else if (change instanceof RemoveNode remove) {
313311
nChanges += 1;
314-
RemoveNode remove = (RemoveNode) change;
315312
if (listener != null)
316313
listener.onBeforeRemoveNode(remove.node);
317314
remove.node.removeInternal();
318315

319-
} else if (change instanceof SetNodeProperty) {
316+
} else if (change instanceof SetNodeProperty setProp) {
320317
nChanges += 1;
321-
SetNodeProperty setProp = (SetNodeProperty) change;
322318
if (listener != null)
323319
listener.onBeforePropertyChange(setProp.node, setProp.label);
324320
setProp.node.setPropertyInternal(setProp.label, setProp.value);
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package overflowdb;
22

3-
import overflowdb.BatchedUpdate;
4-
import overflowdb.Node;
53

64
public interface DetachedNodeData extends BatchedUpdate.Change, NodeOrDetachedNode {
7-
public String label();
5+
String label();
86
/** RefOrId is initially null, and can be a Long if a specific id is required,
97
* and is set to Node once the node has been added to the graph.
108
* */
11-
public Object getRefOrId();
12-
public void setRefOrId(Object refOrId);
9+
Object getRefOrId();
10+
void setRefOrId(Object refOrId);
1311
}

core/src/main/java/overflowdb/Element.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ public <A> A property(String key, A defaultValue) {
2121
}
2222

2323
public <A> A property(PropertyKey<A> key, A defaultValue) {
24-
Object value = property(key);
25-
return value != null ? (A) value : defaultValue;
24+
A value = property(key);
25+
return value != null ? value : defaultValue;
2626
}
2727

2828
/** override this in specific element class, to define a default value */
@@ -38,8 +38,9 @@ public Object propertyDefaultValue(String propertyKey) {
3838
public abstract Map<String, Object> propertiesMap();
3939

4040

41-
@Deprecated public final void setProperty(String key, Object value) {setPropertyImpl(key, value);};
42-
protected abstract void setPropertyImpl(String key, Object value);
41+
@Deprecated public final void setProperty(String key, Object value) {setPropertyImpl(key, value);}
42+
43+
protected abstract void setPropertyImpl(String key, Object value);
4344
final void setPropertyInternal(String key, Object value) {setPropertyImpl(key, value);}
4445

4546
@Deprecated public final <A> void setProperty(PropertyKey<A> key, A value){setPropertyImpl(key, value);}
@@ -57,8 +58,9 @@ public Object propertyDefaultValue(String propertyKey) {
5758
final void removePropertyInternal(String key){removePropertyImpl(key);}
5859

5960

60-
@Deprecated public final void remove(){removeImpl();};
61+
@Deprecated public final void remove(){removeImpl();}
62+
6163
protected abstract void removeImpl();
62-
final void removeInternal(){removeImpl();};
64+
final void removeInternal(){removeImpl();}
6365

6466
}

core/src/main/java/overflowdb/Graph.java

Lines changed: 22 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,22 @@
1616

1717
public final class Graph implements AutoCloseable {
1818

19-
protected final AtomicLong currentId = new AtomicLong(-1L);
19+
private final AtomicLong currentId = new AtomicLong(-1L);
2020
final NodesList nodes = new NodesList();
2121
public final IndexManager indexManager = new IndexManager(this);
2222
private final Config config;
2323
private volatile boolean closed = false;
2424

25-
protected final Map<String, NodeFactory> nodeFactoryByLabel;
26-
protected final Map<String, EdgeFactory> edgeFactoryByLabel;
25+
private final Map<String, NodeFactory> nodeFactoryByLabel;
26+
final Map<String, EdgeFactory> edgeFactoryByLabel;
2727

28-
protected final OdbStorage storage;
28+
final OdbStorage storage;
2929
public final NodeSerializer nodeSerializer;
30-
protected final NodeDeserializer nodeDeserializer;
31-
protected final StringInterner stringInterner;
32-
protected final boolean overflowEnabled;
33-
protected final ReferenceManager referenceManager;
34-
protected final NodesWriter nodesWriter;
30+
final NodeDeserializer nodeDeserializer;
31+
private final StringInterner stringInterner;
32+
private final boolean overflowEnabled;
33+
private final ReferenceManager referenceManager;
34+
private final NodesWriter nodesWriter;
3535

3636
/**
3737
* @param convertPropertyForPersistence applied to all element property values by @{@link NodeSerializer} prior
@@ -88,34 +88,25 @@ private void initElementCollections(OdbStorage storage) {
8888
long start = System.currentTimeMillis();
8989
final Set<Map.Entry<Long, byte[]>> serializedNodes = storage.allNodes();
9090
final int serializedNodesCount = serializedNodes.size();
91-
if (serializedNodesCount > 0) {
92-
}
9391
int importCount = 0;
9492
long maxId = currentId.get();
9593

96-
final Iterator<Map.Entry<Long, byte[]>> serializedVertexIter = serializedNodes.iterator();
97-
while (serializedVertexIter.hasNext()) {
98-
final Map.Entry<Long, byte[]> entry = serializedVertexIter.next();
99-
try {
100-
final NodeRef nodeRef = nodeDeserializer.deserializeRef(entry.getValue());
101-
nodes.add(nodeRef);
102-
importCount++;
103-
if (importCount % 131072 == 0) { // some random magic number that allows for quick division
104-
}
105-
if (nodeRef.id > maxId) maxId = nodeRef.id;
106-
} catch (IOException e) {
107-
throw new RuntimeException("error while initializing vertex from storage: id=" + entry.getKey(), e);
94+
for (Map.Entry<Long, byte[]> entry : serializedNodes) {
95+
try {
96+
final NodeRef nodeRef = nodeDeserializer.deserializeRef(entry.getValue());
97+
nodes.add(nodeRef);
98+
importCount++;
99+
if (nodeRef.id > maxId) maxId = nodeRef.id;
100+
} catch (IOException e) {
101+
throw new RuntimeException("error while initializing vertex from storage: id=" + entry.getKey(), e);
102+
}
108103
}
109-
}
110104

111105
currentId.set(maxId + 1);
112106
indexManager.initializeStoredIndices(storage);
113107
long elapsedMillis = System.currentTimeMillis() - start;
114108
}
115109

116-
117-
////////////// STRUCTURE API METHODS //////////////////
118-
119110
/**
120111
* Add a node with given label and properties
121112
* Will automatically assign an ID - this is the safest option to avoid ID clashes.
@@ -290,7 +281,7 @@ public Iterator<Edge> E() {
290281

291282
/** Iterator over all edges */
292283
public Iterator<Edge> edges() {
293-
return IteratorUtils.flatMap(nodes(), node -> node.outE());
284+
return IteratorUtils.flatMap(nodes(), Node::outE);
294285
}
295286

296287
/** Iterator over edges with given label */
@@ -304,7 +295,7 @@ public Iterator<Node> V() {
304295
}
305296

306297
/** Iterator over all nodes */
307-
public final Iterator<Node> nodes() {
298+
public Iterator<Node> nodes() {
308299
return nodes.iterator();
309300
}
310301

@@ -364,7 +355,7 @@ public Iterator<Node> nodes(final Predicate<String> labelPredicate) {
364355
return multiIterator;
365356
}
366357

367-
private final void addNodesToMultiIterator(final MultiIterator<Node> multiIterator, final String label) {
358+
private void addNodesToMultiIterator(final MultiIterator<Node> multiIterator, final String label) {
368359
final Collection<Node> ret = nodes.nodesByLabel(label);
369360
if (ret != null) {
370361
multiIterator.addIterator(ret.iterator());
@@ -382,9 +373,7 @@ public OdbStorage getStorage() {
382373
/** Copies all nodes/edges into the given empty graph, preserving their ids and properties. */
383374
public void copyTo(Graph destination) {
384375
if (destination.nodeCount() > 0) throw new AssertionError("destination graph must be empty, but isn't");
385-
nodes().forEachRemaining(node -> {
386-
destination.addNode(node.id(), node.label(), PropertyHelper.toKeyValueArray(node.propertiesMap()));
387-
});
376+
nodes().forEachRemaining(node -> destination.addNode(node.id(), node.label(), PropertyHelper.toKeyValueArray(node.propertiesMap())));
388377
nodes().forEachRemaining( node -> {
389378
NodeDb mapped = ((NodeRef<NodeDb>) destination.node(node.id())).get();
390379

0 commit comments

Comments
 (0)