1
2 package org.spf4j.avro;
3
4 import org.spf4j.base.CharSequences;
5
6
7
8
9 public final class SchemaRef {
10
11 private final String groupId;
12
13 private final String artifactId;
14
15 private final String version;
16
17 private final String ref;
18
19 public SchemaRef(final CharSequence sequence) {
20 if (!CharSequences.isValidFileName(sequence)) {
21 throw new IllegalArgumentException("Invalid charecters in " + sequence);
22 }
23 int l = sequence.length();
24 int idx = -1;
25 int idxP1 = idx + 1;
26 idx = CharSequences.indexOf(sequence, idxP1, l, ':');
27 if (idx < 0) {
28 throw new IllegalArgumentException("Invalid schema id " + sequence);
29 }
30 groupId = sequence.subSequence(idxP1, idx).toString();
31 idxP1 = idx + 1;
32 idx = CharSequences.indexOf(sequence, idxP1, l, ':');
33 if (idx < 0) {
34 throw new IllegalArgumentException("Invalid schema id " + sequence);
35 }
36 artifactId = sequence.subSequence(idxP1, idx).toString();
37 idxP1 = idx + 1;
38 idx = CharSequences.indexOf(sequence, idxP1, l, ':');
39 if (idx < 0) {
40 throw new IllegalArgumentException("Invalid schema id " + sequence);
41 }
42 version = sequence.subSequence(idxP1, idx).toString();
43 ref = sequence.subSequence(idx + 1, l).toString();
44 }
45
46 public String getGroupId() {
47 return groupId;
48 }
49
50 public String getArtifactId() {
51 return artifactId;
52 }
53
54 public String getVersion() {
55 return version;
56 }
57
58 public String getRef() {
59 return ref;
60 }
61
62 @Override
63 public String toString() {
64 return groupId + ':' + artifactId + ':' + version + ':' + ref;
65 }
66
67 }