Skip to content
Snippets Groups Projects
Commit 53380f82 authored by Bernhard Johannes Berger's avatar Bernhard Johannes Berger
Browse files

Added a validation rule that checks if the storage path of a module is correct...

Added a validation rule that checks if the storage path of a module is correct (package/filename structure).
parent b0d2f526
No related branches found
No related tags found
No related merge requests found
Pipeline #274364 passed
Showing
with 106 additions and 2 deletions
......@@ -4,7 +4,6 @@
*/
package de.evoal.languages.model.base.dsl.validation;
/**
* This class contains custom validation rules.
*
......@@ -22,5 +21,31 @@ public class BaseLanguageValidator extends AbstractBaseLanguageValidator {
// INVALID_NAME);
// }
// }
/*
@Check
public void checkImportStatement(final Import importStatement) {
System.err.println("IMPORTING " + importStatement.getFilename());
final String filename = importStatement.getFilename();
final ResourceSet rs = importStatement.eResource().getResourceSet();
for(final Resource resource : rs.getResources()) {
final URI uri = resource.getURI();
final String resourceName = uri.toString();
System.err.println(" " + resourceName);
if(resourceName.contains("constraint")) {
System.out.println("BREAK");
}
if(resourceName.endsWith(filename)) {
return;
}
}
warning("Cannot find file '" + filename + "'.", BasePackage.Literals.IMPORT__IMPORTED_NAMESPACE);
}
*/
}
......@@ -4,6 +4,11 @@
*/
package de.evoal.languages.model.ddl.dsl.validation;
import org.eclipse.xtext.validation.Check;
import de.evoal.languages.model.ddl.DataDescriptionModule;
import de.evoal.languages.model.ddl.DdlPackage;
import de.evoal.languages.model.utils.validator.ModuleValidator;
/**
* This class contains custom validation rules.
......@@ -23,4 +28,10 @@ public class DataDescriptionLanguageValidator extends AbstractDataDescriptionLan
// }
// }
@Check
public void checkModule(final DataDescriptionModule module) {
ModuleValidator.check(module, module.getName(), "ddl", msg -> error(msg, module, DdlPackage.Literals.DATA_DESCRIPTION_MODULE__NAME));
}
}
......@@ -3,6 +3,12 @@
*/
package de.evoal.languages.model.dl.dsl.validation;
import org.eclipse.xtext.validation.Check;
import de.evoal.languages.model.dl.DefinitionModule;
import de.evoal.languages.model.dl.DlPackage;
import de.evoal.languages.model.utils.validator.ModuleValidator;
/**
* This class contains custom validation rules.
*
......@@ -21,4 +27,10 @@ public class DefinitionLanguageValidator extends AbstractDefinitionLanguageValid
// }
// }
@Check
public void checkModule(final DefinitionModule module) {
ModuleValidator.check(module, module.getName(), "dl", msg -> error(msg, module, DlPackage.Literals.DEFINITION_MODULE__NAME));
}
}
/*
* generated by Xtext 2.25.0
*/
package de.evoal.languages.model.generator.dsl.validation;
import org.eclipse.xtext.validation.Check;
import de.evoal.languages.model.generator.GeneratorModule;
import de.evoal.languages.model.generator.GeneratorPackage;
import de.evoal.languages.model.utils.validator.ModuleValidator;
/**
* This class contains custom validation rules.
......@@ -22,4 +28,10 @@ public class GeneratorDSLValidator extends AbstractGeneratorDSLValidator {
// }
// }
@Check
public void checkModule(final GeneratorModule module) {
ModuleValidator.check(module, module.getName(), "generator", msg -> error(msg, module, GeneratorPackage.Literals.GENERATOR_MODULE__NAME));
}
}
......@@ -4,6 +4,11 @@
*/
package de.evoal.languages.model.mll.dsl.validation;
import org.eclipse.xtext.validation.Check;
import de.evoal.languages.model.mll.MachineLearningModule;
import de.evoal.languages.model.mll.MllPackage;
import de.evoal.languages.model.utils.validator.ModuleValidator;
/**
* This class contains custom validation rules.
......@@ -23,4 +28,10 @@ public class MachineLearningLanguageValidator extends AbstractMachineLearningLan
// }
// }
@Check
public void checkModule(final MachineLearningModule module) {
ModuleValidator.check(module, module.getName(), "mll", msg -> error(msg, module, MllPackage.Literals.MACHINE_LEARNING_MODULE__NAME));
}
}
......@@ -4,6 +4,11 @@
*/
package de.evoal.languages.model.ol.dsl.validation;
import org.eclipse.xtext.validation.Check;
import de.evoal.languages.model.ol.OLPackage;
import de.evoal.languages.model.ol.OptimisationModule;
import de.evoal.languages.model.utils.validator.ModuleValidator;
/**
* This class contains custom validation rules.
......@@ -23,4 +28,8 @@ public class OptimisationLanguageValidator extends AbstractOptimisationLanguageV
// }
// }
@Check
public void checkModule(final OptimisationModule module) {
ModuleValidator.check(module, module.getName(), "ol", msg -> error(msg, module, OLPackage.Literals.OPTIMISATION_MODULE__NAME));
}
}
package de.evoal.languages.model.utils.validator;
import java.util.function.Consumer;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
public class ModuleValidator {
public static void check(final EObject module, final String moduleName, final String extension, final Consumer<String> acceptor) {
final Resource moduleResource = module.eResource();
final URI moduleURI = moduleResource.getURI();
final String moduleResourceName = moduleURI.toString();
String expectedName = moduleName.replace(".", "/");
expectedName += "." + extension;
if(!moduleResourceName.endsWith(expectedName)) {
acceptor.accept("The filename is expected to be '" + expectedName + "'.");
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment