Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
166 commits
Select commit Hold shift + click to select a range
a913114
add annotation
hauner Jun 12, 2022
3b2cd9d
better name
hauner Jun 12, 2022
cffc4c3
improve
hauner Jun 12, 2022
5d4b21d
support annotations
hauner Jun 12, 2022
058092a
add unevaluatedProperties
hauner Jun 12, 2022
66fea93
improve $ref steps
hauner Jun 12, 2022
7727830
support annotations
hauner Jun 12, 2022
6b4ba47
validate unevaluatedProperties
hauner Jun 12, 2022
78b13a0
must not stop early
hauner Jun 12, 2022
9152614
support annotations
hauner Jun 12, 2022
8a5826b
allow ref siblings
hauner Jun 12, 2022
71cbfd4
update doc
hauner Jun 12, 2022
25ea315
add keyword
hauner Jun 12, 2022
cd135a9
validate dependentSchemas
hauner Jun 12, 2022
661037c
validate unevaluatedProperties
hauner Jun 12, 2022
1bf5bfa
clean up
hauner Jun 19, 2022
9e77005
split id provider
hauner Jun 20, 2022
518a092
clean up
hauner Jun 20, 2022
6244155
clean up
hauner Jun 20, 2022
8aec3f2
$dynamic/$recursive
hauner Jun 20, 2022
cdda1c8
better tracing
hauner Jun 22, 2022
9d0a574
fix
hauner Jun 22, 2022
48daf46
clean up
hauner Jun 22, 2022
56da0f0
improve tracing
hauner Jun 22, 2022
c253234
make explicit
hauner Jun 22, 2022
57666ae
handle dynamic refs
hauner Jun 22, 2022
291cf91
fix
hauner Jun 22, 2022
fb81d61
improve null step
hauner Jun 22, 2022
7b87a7b
should use in & self annotations
hauner Jun 22, 2022
4a6ba85
better home & simpler
hauner Jun 22, 2022
c3fd368
avoid constant
hauner Jun 24, 2022
1659430
fix ref context
hauner Jun 24, 2022
12d6825
clean up
hauner Jun 24, 2022
b9ca5f9
validate dependentRequired
hauner Jun 24, 2022
5f6c26f
validate minContains/maxContains
hauner Jun 24, 2022
1c9fc1f
validate format/uuid
hauner Jun 25, 2022
b6fe2e8
skip format/duration
hauner Jun 25, 2022
b7dc705
update
hauner Jun 25, 2022
747d117
validate unevaluatedItems
hauner Jun 26, 2022
58280f6
fix/improve unevaluatedProperties
hauner Jun 26, 2022
755a157
update
hauner Jun 26, 2022
c1d2b3d
clean up
hauner Feb 5, 2023
f6f1bec
better name
hauner Mar 4, 2023
b05c892
automatically find with empty fragment
hauner Mar 4, 2023
6dcb9cc
clean up
hauner Mar 4, 2023
496bd86
extract document loader
hauner Mar 4, 2023
85cc7bf
better named variants
hauner Mar 4, 2023
26042e3
more uri support
hauner Mar 4, 2023
e25fe3a
add full scope
hauner Mar 4, 2023
3cac59a
clean up
hauner Mar 4, 2023
376ea3b
nullable
hauner Mar 4, 2023
57b4aa5
adjust to scope object
hauner Mar 4, 2023
3d2309c
improve scope handling
hauner Mar 4, 2023
02bdbc8
full scope object
hauner Mar 4, 2023
22aaca1
use full scope object
hauner Mar 4, 2023
6a94017
use full scope object
hauner Mar 4, 2023
275384b
better naming
hauner Mar 4, 2023
2050f48
add schema resources
hauner Mar 4, 2023
f30afaf
more helper
hauner Mar 4, 2023
0db989e
improve resolver
hauner Mar 4, 2023
85cfc17
more helper
hauner Mar 4, 2023
be0d739
use full scope object
hauner Mar 4, 2023
b2099c6
improve id recognition
hauner Mar 4, 2023
fd0a546
clean up
hauner Mar 5, 2023
66d4c0b
use full scope object
hauner Mar 5, 2023
2e1f1c9
use uri factory method
hauner Mar 5, 2023
8079439
clean up
hauner Mar 5, 2023
3c7e38e
fix deprecated
hauner Mar 5, 2023
b053eb5
use full scope object
hauner Mar 5, 2023
0674d0e
fix deprecated
hauner Mar 5, 2023
aebda75
use full scope object
hauner Mar 5, 2023
3efbc12
use full scope object
hauner Mar 5, 2023
13839b6
fix deprecated
hauner Mar 5, 2023
be5d3ee
fix deprecated
hauner Mar 11, 2023
14d8e54
fix test
hauner Mar 11, 2023
58c88cd
fix nullable
hauner Mar 11, 2023
68e7435
fix nullable
hauner Mar 11, 2023
706a69d
fix nullable
hauner Mar 11, 2023
49e7d04
fix deprecated
hauner Mar 11, 2023
1467d2e
unused
hauner Mar 11, 2023
46d0bb6
fix tests
hauner Mar 11, 2023
5a53b42
nullable
hauner Mar 11, 2023
53fcbb2
nullable
hauner Mar 11, 2023
c93e531
nullable
hauner Mar 11, 2023
ac86a99
nullable
hauner Mar 11, 2023
6a4b287
restore
hauner Mar 11, 2023
0c754f3
nullable
hauner Mar 11, 2023
f496a31
nullable
hauner Mar 11, 2023
496d070
nullable
hauner Mar 11, 2023
d86e1b4
clean up
hauner Mar 11, 2023
cea5513
nullable
hauner Mar 11, 2023
35c606a
use full scope object
hauner Mar 12, 2023
27e43d7
missing
hauner Mar 12, 2023
4fd5b26
nullable
hauner Mar 12, 2023
498f952
better name
hauner Mar 12, 2023
3dbe379
get meta schema
hauner Mar 12, 2023
4f9e0fb
remember $schema ref
hauner Mar 12, 2023
e271c37
clean up
hauner Mar 16, 2023
0fd25fe
new util
hauner Mar 16, 2023
639f82c
rewritten
hauner Mar 16, 2023
a94bbbe
simpler schema setup
hauner Mar 16, 2023
66094bb
basic vocabulary support
hauner Mar 16, 2023
bd2f501
improve schemas layout
hauner Mar 19, 2023
f5909fe
better home of factory methods
hauner Mar 25, 2023
47a2e1f
clean up
hauner Mar 25, 2023
e4e9d36
rewrite resolver
hauner Mar 25, 2023
2c77967
fix name
hauner Mar 25, 2023
0c5372c
clean up
hauner Mar 25, 2023
2a6e8d6
clean up
hauner Mar 25, 2023
aa4555a
delegate
hauner Mar 26, 2023
9a955b1
avoid duplicate walk & scope move
hauner Mar 26, 2023
cba1a4e
clean up
hauner Mar 26, 2023
246e74e
simpler
hauner Mar 26, 2023
731a717
avoid under initialized warning
hauner Mar 26, 2023
057fb86
explicit steps/errors
hauner Mar 26, 2023
4d71c77
clean up nullable
hauner Mar 26, 2023
6f2d6d0
clean up nullable
hauner Mar 26, 2023
ea83566
clean up nullable
hauner Mar 26, 2023
c1f2719
clean up nullable
hauner Mar 26, 2023
e3cc3f9
fix
hauner Mar 26, 2023
711ee50
move tests
hauner Mar 31, 2023
39eed24
clean up
hauner Mar 31, 2023
95f63f9
fix store usage
hauner Mar 31, 2023
94aa192
fix tests
hauner Mar 31, 2023
ffa54d1
updated setup
hauner Mar 31, 2023
fcac62f
add root document
hauner Apr 1, 2023
26b50f5
clean up
hauner Apr 1, 2023
a2bfd6d
clean up
hauner Apr 1, 2023
d0a0a93
improve ref "exit"
hauner Apr 1, 2023
2955409
clean up
hauner Apr 1, 2023
3725a48
fix test
hauner Apr 1, 2023
23edf98
add output types
hauner Apr 1, 2023
e17cf68
missing test document
hauner Apr 1, 2023
cf04ba8
missing test documents
hauner Apr 1, 2023
dfe4d67
x.0 numbers are integers
hauner Apr 1, 2023
ab2e165
fix git error
hauner Apr 1, 2023
f0bc715
unused
hauner Apr 2, 2023
5368e55
simpler
hauner Apr 2, 2023
d5b7c43
unused
hauner Apr 2, 2023
8b1e049
basic urn support
hauner Apr 2, 2023
974fe92
new remote files
hauner Apr 2, 2023
1cdd1fe
update remote files
hauner Apr 2, 2023
b0527ef
switch drafts
hauner Apr 2, 2023
0a95c97
update remote files
hauner Apr 2, 2023
27e5ce5
exclude test
hauner Apr 2, 2023
db4ca61
add $schema check to detect version
hauner Apr 2, 2023
65cd8e1
check keyword is in version
hauner Apr 2, 2023
4e099c1
update official test suite
hauner Apr 2, 2023
4d7318f
invalid property error
hauner Apr 3, 2023
c6c3325
init draft4 vocabulary
hauner Apr 3, 2023
5458666
clean up deprecated
hauner Apr 4, 2023
aecfe22
copy object tree
hauner Apr 4, 2023
9d5997e
copy documents
hauner Apr 4, 2023
2378e1c
bundle openapi
hauner Apr 6, 2023
da93e19
update gradle
hauner Apr 6, 2023
6c036ca
update dependencies
hauner Apr 6, 2023
540a072
clean up
hauner Apr 6, 2023
90a8b4c
nullable
hauner Apr 6, 2023
a176bf8
upgrade gradle
hauner Apr 6, 2023
7b6c995
todo nullable
hauner Apr 6, 2023
36dd0b2
does not work anymore?
hauner Apr 6, 2023
dd913c7
clean up
hauner Apr 6, 2023
336141e
nullable
hauner Apr 6, 2023
a5a7330
missing files
hauner Apr 6, 2023
8121329
update dependencies
hauner Apr 6, 2023
0ec5470
update workflows
hauner Apr 6, 2023
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
improve resolver
  • Loading branch information
hauner committed Mar 4, 2023
commit 0db989e4ee20e890de04afb0a3922bc48abfc69d
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/*
* Copyright 2023 https://github.com/openapi-processor/openapi-parser
* PDX-License-Identifier: Apache-2.0
*/

package io.openapiparser.schema;

import org.checkerframework.checker.nullness.qual.Nullable;

import java.util.*;
import java.util.function.Consumer;

public class References {
private static class RefEntry {
Ref ref;

public RefEntry (Ref ref) {
this.ref = ref;
}

@Override
public boolean equals (@Nullable Object o) {
if (this == o)
return true;

if (o == null || getClass () != o.getClass ())
return false;

RefEntry pending = (RefEntry) o;
return ref.getFullRefUri ().equals (pending.ref.getFullRefUri ());
}

@Override
public int hashCode () {
return Objects.hash (ref.getFullRef ());
}

@Override
public String toString () {
return ref.getFullRef ();
}
}

private final Set<RefEntry> references = new HashSet<> ();

public void add (Ref ref) {
references.add (new RefEntry (ref));
}

/**
* loop the references.
*
* @param consumer consumer callback that handles the ref
*/
public void each (Consumer<Ref> consumer) {
for (RefEntry next : references) {
consumer.accept (next.ref);
}
}
}
Loading