Java Examples for io.vertx.codegen.annotations.ModuleGen

The following java examples will help you to understand the usage of io.vertx.codegen.annotations.ModuleGen. These source code samples are taken from different open source projects.

Example 1
Project: vertx-codegen-master  File: CodeGen.java View source code
public ModuleModel getModuleModel(String modulePackage) {
    PackageElement element = modules.get(modulePackage);
    ModuleGen annotation = element.getAnnotation(ModuleGen.class);
    String moduleName = annotation.name();
    if (moduleName.isEmpty()) {
        throw new GenException(element, "A module name cannot be empty");
    }
    try {
        Case.KEBAB.parse(moduleName);
    } catch (IllegalArgumentException e) {
        throw new GenException(element, "Module name '" + moduleName + "' does not follow the snake case format (dash separated name)");
    }
    String groupPackage = annotation.groupPackage();
    if (groupPackage.equals("")) {
        groupPackage = modulePackage;
    } else if (!modulePackage.startsWith(groupPackage)) {
        throw new GenException(element, "A module package (" + modulePackage + ") must be prefixed by the group package (" + groupPackage + ")");
    }
    try {
        Case.QUALIFIED.parse(groupPackage);
    } catch (Exception e) {
        throw new GenException(element, "Invalid group package name " + groupPackage);
    }
    ModuleInfo info = new ModuleInfo(modulePackage, moduleName, groupPackage);
    return new ModuleModel(element, info);
}