- checkArgument(name.endsWith(".yang"), "Filename %s does not have a .yang extension", name);
- // FIXME: add revision-awareness
- return SourceIdentifier.create(name.substring(0, name.length() - 5), Optional.<String>absent());
+ checkArgument(name.endsWith(YangConstants.RFC6020_YANG_FILE_EXTENSION), "Filename %s does not have a .yang extension",
+ name);
+
+ final String baseName = name.substring(0, name.length() - YangConstants.RFC6020_YANG_FILE_EXTENSION.length());
+ final Entry<String, String> parsed = YangNames.parseFilename(baseName);
+ return RevisionSourceIdentifier.create(parsed.getKey(), Optional.fromNullable(parsed.getValue()));