Skip to content

Commit 37895b8

Browse files
committed
Autogenerated markdown documentation
1 parent 3286eab commit 37895b8

File tree

8 files changed

+251
-88
lines changed

8 files changed

+251
-88
lines changed

docs/src/main/java/com/bio4j/angulillos/TypedEdgeIndex.java.md

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,49 +6,50 @@ import java.util.Optional;
66
import java.util.stream.Stream;
77

88
public interface TypedEdgeIndex <
9-
E extends TypedEdge<?,?, E,ET, ?,?, ?,?,?>,
10-
ET extends TypedEdge.Type<?,?, E,ET, ?,?, ?,?,?>,
9+
E extends TypedEdge<?,?, E,ET, ?,?, ?,RV,RE>,
10+
ET extends TypedEdge.Type<?,?, E,ET, ?,?, ?,RV,RE>,
1111
P extends Property<ET,X>,
12-
X
12+
X,
13+
RV,RE
1314
> extends
14-
TypedElementIndex<E,ET, P,X>
15+
TypedElementIndex<E,ET, P,X, RE>
1516
{
1617

1718
default ET edgeType() { return elementType(); }
1819

19-
interface Unique <
20-
E extends TypedEdge<?,?, E,ET, ?,?, ?,?,?>,
21-
ET extends TypedEdge.Type<?,?, E,ET, ?,?, ?,?,?>,
22-
P extends Property<ET,X> & Arity.FromAtMostOne,
23-
X
24-
> extends
25-
TypedEdgeIndex<E,ET, P,X>,
26-
TypedElementIndex.Unique<E,ET, P,X>
27-
{
28-
```
20+
default UntypedGraph<RV,RE> untypedGraph() { return property().elementType().graph().raw(); }
2921

30-
get a node by providing a value of the indexed property.
22+
default Stream<E> query(QueryPredicate.Compare predicate, X value) {
3123

32-
```java
33-
default Optional<E> getEdge(X byValue) { return getElement(byValue); }
24+
return untypedGraph().<X>queryEdges(property(), predicate, value).map( edgeType()::fromRaw );
3425
}
3526

27+
default Stream<E> query(QueryPredicate.Contain predicate, java.util.Collection<X> values) {
28+
29+
return untypedGraph().<X>queryEdges(property(), predicate, values).map( edgeType()::fromRaw );
30+
}
31+
32+
interface Unique <
33+
E extends TypedEdge<?,?, E,ET, ?,?, ?,RV,RE>,
34+
ET extends TypedEdge.Type<?,?, E,ET, ?,?, ?,RV,RE>,
35+
P extends Property<ET,X> & Arity.FromAtMostOne,
36+
X,
37+
RV,RE
38+
> extends
39+
TypedEdgeIndex<E,ET, P,X, RV,RE>,
40+
TypedElementIndex.Unique<E,ET, P,X, RE>
41+
{}
42+
3643
interface NonUnique <
37-
E extends TypedEdge<?,?, E,ET, ?,?, ?,?,?>,
38-
ET extends TypedEdge.Type<?,?, E,ET, ?,?, ?,?,?>,
44+
E extends TypedEdge<?,?, E,ET, ?,?, ?,RV,RE>,
45+
ET extends TypedEdge.Type<?,?, E,ET, ?,?, ?,RV,RE>,
3946
P extends Property<ET,X>,
40-
X
47+
X,
48+
RV,RE
4149
> extends
42-
TypedEdgeIndex<E,ET, P,X>,
43-
TypedElementIndex.NonUnique<E,ET, P,X>
44-
{
45-
```
46-
47-
get a list of nodes by providing a value of the indexed property.
48-
49-
```java
50-
default Stream<E> getEdges(X byValue) { return getElements(byValue); }
51-
}
50+
TypedEdgeIndex<E,ET, P,X, RV,RE>,
51+
TypedElementIndex.NonUnique<E,ET, P,X, RE>
52+
{}
5253
}
5354

5455
```

docs/src/main/java/com/bio4j/angulillos/TypedElementIndex.java.md

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,14 @@ import java.util.Collection;
88

99
public interface TypedElementIndex <
1010
// element
11-
F extends TypedElement<F,FT, ?,?>,
12-
FT extends TypedElement.Type<F,FT, ?,?>,
11+
F extends TypedElement<F,FT, ?,RF>,
12+
FT extends TypedElement.Type<F,FT, ?,RF>,
1313
// property
1414
P extends Property<FT,X>,
15-
X
15+
X,
16+
RF
1617
>
17-
{
18-
```
19-
20-
Index name
21-
22-
```java
23-
String name();
24-
25-
// /* The graph */
26-
// G graph();
27-
18+
extends HasLabel {
2819
```
2920

3021
Get the indexed property.
@@ -52,20 +43,21 @@ This interface declares that this index is over a property that uniquely classif
5243
```java
5344
interface Unique <
5445
// element
55-
F extends TypedElement<F,FT, ?,?>,
56-
FT extends TypedElement.Type<F,FT, ?,?>,
46+
F extends TypedElement<F,FT, ?,RF>,
47+
FT extends TypedElement.Type<F,FT, ?,RF>,
5748
// property
5849
P extends Property<FT,X> & Arity.FromAtMostOne,
59-
X
50+
X,
51+
RF
6052
>
61-
extends TypedElementIndex<F,FT, P,X>
53+
extends TypedElementIndex<F,FT, P,X,RF>
6254
{
6355
```
6456

6557
Get an element by providing a value of the indexed property
6658

6759
```java
68-
default Optional<F> getElement(X byValue) {
60+
default Optional<F> find(X byValue) {
6961

7062
return query(QueryPredicate.Compare.EQUAL, byValue).findFirst();
7163
}
@@ -77,20 +69,21 @@ This interface declares that this index is over a property that classifies lists
7769
```java
7870
interface NonUnique <
7971
// element
80-
F extends TypedElement<F,FT, ?,?>,
81-
FT extends TypedElement.Type<F,FT, ?,?>,
72+
F extends TypedElement<F,FT, ?,RF>,
73+
FT extends TypedElement.Type<F,FT, ?,RF>,
8274
// property
8375
P extends Property<FT,X>,
84-
X
76+
X,
77+
RF
8578
>
86-
extends TypedElementIndex<F,FT, P,X>
79+
extends TypedElementIndex<F,FT, P,X,RF>
8780
{
8881
```
8982

9083
Get a list of elements by providing a value of the property
9184

9285
```java
93-
default Stream<F> getElements(X byValue) {
86+
default Stream<F> find(X byValue) {
9487

9588
return query(QueryPredicate.Compare.EQUAL, byValue);
9689
}

docs/src/main/java/com/bio4j/angulillos/TypedGraph.java.md

Lines changed: 127 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ interface AnyTypedGraph {
1616

1717
Set<AnyVertexType> vertexTypes();
1818
Set<AnyEdgeType> edgeTypes();
19+
Set<TypedVertexIndex.Unique<?,?,?,?,?,?>> uniqueVertexIndexes();
20+
Set<TypedVertexIndex.NonUnique<?,?,?,?,?,?>> nonUniqueVertexIndexes();
21+
Set<TypedEdgeIndex.Unique<?,?,?,?,?,?>> uniqueEdgeIndexes();
22+
Set<TypedEdgeIndex.NonUnique<?,?,?,?,?,?>> nonUniqueEdgeIndexes();
1923
}
2024

2125
public abstract class TypedGraph<
@@ -43,6 +47,18 @@ This set will store all edge types defined for this graph
4347
```java
4448
private final Set<AnyEdgeType> edgeTypes = new java.util.HashSet<>();
4549
public final Set<AnyEdgeType> edgeTypes() { return this.edgeTypes; }
50+
51+
private final Set<TypedVertexIndex.Unique<?,?,?,?,?,?>> uniqueVertexIndexes = new java.util.HashSet<>();
52+
public final Set<TypedVertexIndex.Unique<?,?,?,?,?,?>> uniqueVertexIndexes() { return this.uniqueVertexIndexes; }
53+
54+
private final Set<TypedVertexIndex.NonUnique<?,?,?,?,?,?>> nonUniqueVertexIndexes = new java.util.HashSet<>();
55+
public final Set<TypedVertexIndex.NonUnique<?,?,?,?,?,?>> nonUniqueVertexIndexes() { return this.nonUniqueVertexIndexes; }
56+
57+
private final Set<TypedEdgeIndex.Unique<?,?,?,?,?,?>> uniqueEdgeIndexes = new java.util.HashSet<>();
58+
public final Set<TypedEdgeIndex.Unique<?,?,?,?,?,?>> uniqueEdgeIndexes() { return this.uniqueEdgeIndexes; }
59+
60+
private final Set<TypedEdgeIndex.NonUnique<?,?,?,?,?,?>> nonUniqueEdgeIndexes = new java.util.HashSet<>();
61+
public final Set<TypedEdgeIndex.NonUnique<?,?,?,?,?,?>> nonUniqueEdgeIndexes() { return this.nonUniqueEdgeIndexes; }
4662
```
4763

4864
### Abstract helper classes
@@ -121,7 +137,6 @@ This set stores all properties that are defined on this element type
121137
}
122138
}
123139

124-
125140
public abstract class Vertex<
126141
V extends Vertex<V>
127142
> extends Element<V, VertexType<V>, RV>
@@ -154,8 +169,61 @@ This set stores all properties that are defined on this element type
154169
}
155170
TypedGraph.this.vertexTypes.add( self() );
156171
}
157-
}
158172

173+
public class UniqueIndex<
174+
P extends Property<X> & Arity.FromAtMostOne,
175+
X
176+
>
177+
implements TypedVertexIndex.Unique<V,VertexType<V>,P,X,RV,RE> {
178+
179+
private final P property;
180+
public final P property() { return property; }
181+
182+
protected UniqueIndex(P property) { this.property = property; }
183+
184+
{
185+
if(
186+
TypedGraph.this.uniqueVertexIndexes.removeIf(
187+
vt -> vt._label().equals( _label() )
188+
)
189+
)
190+
{
191+
throw new IllegalArgumentException("The graph contains a duplicate index type: " + _label());
192+
}
193+
else {
194+
195+
TypedGraph.this.uniqueVertexIndexes.add( this );
196+
}
197+
}
198+
}
199+
200+
public class NonUniqueIndex<
201+
P extends Property<X>,
202+
X
203+
>
204+
implements TypedVertexIndex.NonUnique<V,VertexType<V>,P,X,RV,RE> {
205+
206+
private final P property;
207+
public final P property() { return property; }
208+
209+
protected NonUniqueIndex(P property) { this.property = property; }
210+
211+
{
212+
if(
213+
TypedGraph.this.nonUniqueVertexIndexes.removeIf(
214+
vt -> vt._label().equals( _label() )
215+
)
216+
)
217+
{
218+
throw new IllegalArgumentException("The graph contains a duplicate index type: " + _label());
219+
}
220+
else {
221+
222+
TypedGraph.this.nonUniqueVertexIndexes.add( this );
223+
}
224+
}
225+
}
226+
}
159227

160228
public abstract class Edge<
161229
S extends Vertex<S>,
@@ -182,7 +250,9 @@ This set stores all properties that are defined on this element type
182250
E, EdgeType<S,E,T>,
183251
T, VertexType<T>,
184252
G,RV,RE
185-
> {
253+
>
254+
{
255+
186256
protected EdgeType<S,E,T> self() { return this; }
187257

188258
private final VertexType<S> sourceType;
@@ -212,6 +282,60 @@ This set stores all properties that are defined on this element type
212282
sourceType.outEdges.add( self() );
213283
targetType.inEdges.add( self() );
214284
}
285+
286+
public class UniqueIndex<
287+
P extends Property<X> & Arity.FromAtMostOne,
288+
X
289+
>
290+
implements com.bio4j.angulillos.TypedEdgeIndex.Unique<E,EdgeType<S,E,T>,P,X,RV,RE> {
291+
292+
private final P property;
293+
public final P property() { return property; }
294+
295+
protected UniqueIndex(P property) { this.property = property; }
296+
297+
{
298+
if(
299+
TypedGraph.this.uniqueEdgeIndexes.removeIf(
300+
vt -> vt._label().equals( _label() )
301+
)
302+
)
303+
{
304+
throw new IllegalArgumentException("The graph contains a duplicate index type: " + _label());
305+
}
306+
else {
307+
308+
TypedGraph.this.uniqueEdgeIndexes.add( this );
309+
}
310+
}
311+
}
312+
313+
public class NonUniqueIndex<
314+
P extends Property<X>,
315+
X
316+
>
317+
implements com.bio4j.angulillos.TypedEdgeIndex.NonUnique<E,EdgeType<S,E,T>,P,X,RV,RE> {
318+
319+
private final P property;
320+
public final P property() { return property; }
321+
322+
protected NonUniqueIndex(P property) { this.property = property; }
323+
324+
{
325+
if(
326+
TypedGraph.this.nonUniqueEdgeIndexes.removeIf(
327+
vt -> vt._label().equals( _label() )
328+
)
329+
)
330+
{
331+
throw new IllegalArgumentException("The graph contains a duplicate index type: " + _label());
332+
}
333+
else {
334+
335+
TypedGraph.this.nonUniqueEdgeIndexes.add( this );
336+
}
337+
}
338+
}
215339
}
216340
}
217341

0 commit comments

Comments
 (0)