* Read all model files from the directory in alphabetical order
* @param logger
*/
private static Model readLocalModel(final File systemsDirectory, final MavenProject project, final MavenSession session, final Logger logger)
throws MojoExecutionException {
final Model result = new Model();
final List<String> candidates = new ArrayList<String>();
if ( systemsDirectory != null && systemsDirectory.exists() ) {
for(final File f : systemsDirectory.listFiles() ) {
if ( f.isFile() && f.getName().endsWith(".txt") && !f.getName().startsWith(".") ) {
candidates.add(f.getName());
}
}
Collections.sort(candidates);
}
if ( candidates.size() == 0 ) {
throw new MojoExecutionException("No model files found in " + systemsDirectory);
}
for(final String name : candidates) {
logger.debug("Reading model " + name + " in project " + project.getId());
try {
final File f = new File(systemsDirectory, name);
final FileReader reader = new FileReader(f);
try {
final Model current = ModelReader.read(reader, f.getAbsolutePath());
final Map<Traceable, String> errors = ModelUtility.validate(current);
if (errors != null ) {
throw new MojoExecutionException("Invalid model at " + name + " : " + errors);
}
ModelUtility.merge(result, current);