1
2
3
4
5
6 package dev.metaschema.oscal.lib.profile.resolver.policy;
7
8 import dev.metaschema.oscal.lib.profile.resolver.ProfileResolutionEvaluationException;
9 import edu.umd.cs.findbugs.annotations.NonNull;
10 import edu.umd.cs.findbugs.annotations.Nullable;
11
12 public interface IIdentifierParser {
13 @NonNull
14 IIdentifierParser FRAGMENT_PARSER = new PatternIdentifierParser("^#([^#]+)(?:#.*)?$", 1);
15 @NonNull
16 IIdentifierParser IDENTITY_PARSER = new IIdentifierParser() {
17
18 @Override
19 public String parse(@NonNull String reference) {
20 return reference;
21 }
22
23 @Override
24 public String update(@NonNull String reference, @NonNull String newIdentifier) {
25 return newIdentifier;
26 }
27 };
28
29
30
31
32
33
34
35
36 @Nullable
37 String parse(@NonNull String referenceText);
38
39
40
41
42
43
44
45
46
47
48
49
50
51 @NonNull
52 String update(@NonNull String referenceText, @NonNull String newIdentifier);
53 }