View Javadoc
1   
2   package org.spf4j.avro;
3   
4   import org.spf4j.base.CharSequences;
5   
6   /**
7    * @author Zoltan Farkas
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  }