1 package org.opendaylight.yangtools.yang.model.util.repo;
3 import com.google.common.base.Optional;
5 public final class SourceIdentifier {
7 private final String name;
8 private final String revision;
10 public SourceIdentifier(String name, Optional<String> formattedRevision) {
13 this.revision = formattedRevision.orNull();
17 public int hashCode() {
20 result = prime * result + ((name == null) ? 0 : name.hashCode());
21 result = prime * result + ((revision == null) ? 0 : revision.hashCode());
26 public boolean equals(Object obj) {
31 if (getClass() != obj.getClass())
33 SourceIdentifier other = (SourceIdentifier) obj;
35 if (other.name != null)
37 } else if (!name.equals(other.name))
39 if (revision == null) {
40 if (other.revision != null)
42 } else if (!revision.equals(other.revision))
47 public String getName() {
51 public String getRevision() {
55 public static SourceIdentifier create(String moduleName, Optional<String> revision) {
56 return new SourceIdentifier(moduleName, revision);
59 public String toYangFilename() {
60 return toYangFileName(name, Optional.fromNullable(revision));
64 public String toString() {
65 return "SourceIdentifier [name=" + name + "@" + revision + "]";
68 public static final String toYangFileName(String moduleName, Optional<String> revision) {
69 StringBuilder filename = new StringBuilder(moduleName);
70 if (revision.isPresent()) {
72 filename.append(revision.get());
74 filename.append(".yang");
75 return filename.toString();