Search in sources :

Example 41 with Module

use of com.developmentontheedge.be5.metadata.model.Module in project be5 by DevelopmentOnTheEdge.

the class FreemarkerUtils method getConfiguration.

public static Configuration getConfiguration(Project project) {
    Configuration config = (Configuration) configTemplate.clone();
    config.setCacheStorage(new SoftCacheStorage());
    try {
        config.setSharedVariable("project", project);
    } catch (TemplateModelException e) {
        throw new RuntimeException("Unexpected error: " + e, e);
    }
    FreemarkerScript macroCollection = project.getMacroCollection().optScript(FreemarkerCatalog.MAIN_MACRO_LIBRARY);
    if (macroCollection != null) {
        config.addAutoInclude(macroCollection.getCompletePath().toString());
    }
    for (Module module : project.getModules()) {
        FreemarkerCatalog collection = module.getMacroCollection();
        if (collection != null) {
            FreemarkerScript script = collection.optScript(FreemarkerCatalog.MAIN_MACRO_LIBRARY);
            if (script != null) {
                config.addAutoInclude(script.getCompletePath().toString());
            }
        }
    }
    config.setTemplateLoader(new ProjectTemplateLoader(project));
    return config;
}
Also used : TemplateModelException(freemarker.template.TemplateModelException) Configuration(freemarker.template.Configuration) SoftCacheStorage(freemarker.cache.SoftCacheStorage) FreemarkerCatalog(com.developmentontheedge.be5.metadata.model.FreemarkerCatalog) FreemarkerScript(com.developmentontheedge.be5.metadata.model.FreemarkerScript) Module(com.developmentontheedge.be5.metadata.model.Module)

Example 42 with Module

use of com.developmentontheedge.be5.metadata.model.Module in project be5 by DevelopmentOnTheEdge.

the class MetaImpl method getOrderedEntitiesByModules.

@Override
public Map<String, List<Entity>> getOrderedEntitiesByModules(EntityType entityType, String language) {
    HashMap<String, List<Entity>> result = new HashMap<>();
    for (Module module : getProject().getModulesAndApplication()) {
        List<OrderedEntity> entities = new ArrayList<>();
        for (Entity entity : module.getEntities()) {
            if (entityType == null || entity.getType() == entityType) {
                entities.add(new OrderedEntity(entity, getTitle(entity, language)));
            }
        }
        Collections.sort(entities);
        result.put(module.getName(), entities.stream().map(e -> e.entity).collect(Collectors.toList()));
    }
    return result;
}
Also used : Entity(com.developmentontheedge.be5.metadata.model.Entity) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) Module(com.developmentontheedge.be5.metadata.model.Module)

Example 43 with Module

use of com.developmentontheedge.be5.metadata.model.Module in project be5 by DevelopmentOnTheEdge.

the class MetaImpl method getOrderedEntities.

@Override
public List<Entity> getOrderedEntities(EntityType entityType, String language) {
    List<OrderedEntity> entities = new ArrayList<>();
    for (Module module : getProject().getModulesAndApplication()) {
        for (Entity entity : module.getEntities()) {
            if (entityType == null || entity.getType() == entityType) {
                entities.add(new OrderedEntity(entity, getTitle(entity, language)));
            }
        }
    }
    Collections.sort(entities);
    return entities.stream().map(e -> e.entity).collect(Collectors.toList());
}
Also used : Operation(com.developmentontheedge.be5.metadata.model.Operation) Arrays(java.util.Arrays) SqlTypeUtils(com.developmentontheedge.sql.format.SqlTypeUtils) ProjectProvider(com.developmentontheedge.be5.api.services.ProjectProvider) ProjectElementException(com.developmentontheedge.be5.metadata.exception.ProjectElementException) QueryLink(com.developmentontheedge.be5.api.services.QueryLink) Meta(com.developmentontheedge.be5.api.services.Meta) HashMap(java.util.HashMap) RoleType(com.developmentontheedge.be5.metadata.RoleType) Query(com.developmentontheedge.be5.metadata.model.Query) Function(java.util.function.Function) Be5ErrorCode(com.developmentontheedge.be5.api.exceptions.Be5ErrorCode) ArrayList(java.util.ArrayList) BeModelElement(com.developmentontheedge.be5.metadata.model.base.BeModelElement) Entity(com.developmentontheedge.be5.metadata.model.Entity) EntityItem(com.developmentontheedge.be5.metadata.model.EntityItem) LocalizationElement(com.developmentontheedge.be5.metadata.model.LocalizationElement) BeModelElementSupport(com.developmentontheedge.be5.metadata.model.base.BeModelElementSupport) Utils(com.developmentontheedge.be5.util.Utils) Locale(java.util.Locale) Map(java.util.Map) EntityLocalizations(com.developmentontheedge.be5.metadata.model.EntityLocalizations) StreamSupport(java.util.stream.StreamSupport) LanguageLocalizations(com.developmentontheedge.be5.metadata.model.LanguageLocalizations) Be5Exception(com.developmentontheedge.be5.api.exceptions.Be5Exception) Module(com.developmentontheedge.be5.metadata.model.Module) TableDef(com.developmentontheedge.be5.metadata.model.TableDef) DataElementUtils(com.developmentontheedge.be5.metadata.model.DataElementUtils) Localizations(com.developmentontheedge.be5.metadata.model.Localizations) BeCaseInsensitiveCollection(com.developmentontheedge.be5.metadata.model.base.BeCaseInsensitiveCollection) Predicate(java.util.function.Predicate) Timestamp(java.sql.Timestamp) Set(java.util.Set) Collectors(java.util.stream.Collectors) Date(java.sql.Date) Objects(java.util.Objects) List(java.util.List) ColumnDef(com.developmentontheedge.be5.metadata.model.ColumnDef) RoleSet(com.developmentontheedge.be5.metadata.model.RoleSet) SqlColumnType(com.developmentontheedge.be5.metadata.model.SqlColumnType) Optional(java.util.Optional) Pattern(java.util.regex.Pattern) Project(com.developmentontheedge.be5.metadata.model.Project) Collections(java.util.Collections) EntityType(com.developmentontheedge.be5.metadata.model.EntityType) Entity(com.developmentontheedge.be5.metadata.model.Entity) ArrayList(java.util.ArrayList) Module(com.developmentontheedge.be5.metadata.model.Module)

Example 44 with Module

use of com.developmentontheedge.be5.metadata.model.Module in project be5 by DevelopmentOnTheEdge.

the class ModuleLoader2 method getFileSystem.

/**
 * Returns BeanExplorerProjectFileSystem for given module if possible
 */
public static ProjectFileSystem getFileSystem(Project app, String moduleName) {
    if (app.getProjectOrigin().equals(moduleName)) {
        return new ProjectFileSystem(app);
    }
    Path modulePath = ModuleLoader2.getModulePath(moduleName);
    if (modulePath != null) {
        Project project = new Project(moduleName);
        project.setLocation(modulePath);
        project.setProjectFileStructure(new ProjectFileStructure(project));
        return new ProjectFileSystem(project);
    }
    return null;
}
Also used : Path(java.nio.file.Path) Project(com.developmentontheedge.be5.metadata.model.Project) ProjectFileStructure(com.developmentontheedge.be5.metadata.model.ProjectFileStructure)

Example 45 with Module

use of com.developmentontheedge.be5.metadata.model.Module in project be5 by DevelopmentOnTheEdge.

the class ModuleLoader2 method loadAllProjects.

public static void loadAllProjects(List<URL> urls) {
    modulesMap = new HashMap<>();
    try {
        replaceAndAddURLtoSource(urls);
        for (URL url : urls) {
            LoadContext loadContext = new LoadContext();
            Project module;
            String ext = url.toExternalForm();
            if (// usual file in directory
            ext.indexOf('!') < 0) {
                Path path = Paths.get(url.toURI()).getParent();
                module = Serialization.load(path, loadContext);
                log.fine("Load module from dir: " + path);
            } else // war or jar file
            {
                String jar = ext.substring(0, ext.indexOf('!'));
                // = FileSystems.getFileSystem(URI.create(jar));
                FileSystem fs;
                try {
                    fs = FileSystems.newFileSystem(URI.create(jar), Collections.emptyMap());
                } catch (FileSystemAlreadyExistsException e) {
                    fs = FileSystems.getFileSystem(URI.create(jar));
                    log.info("Get exists FileSystem after exception");
                }
                Path path = fs.getPath("./");
                module = Serialization.load(path, loadContext);
                log.fine("Load module from " + url.toExternalForm() + ", path=" + path);
            }
            loadContext.check();
            modulesMap.put(module.getAppName(), module);
        }
    } catch (ProjectLoadException | IOException | URISyntaxException e) {
        e.printStackTrace();
    }
}
Also used : Path(java.nio.file.Path) Project(com.developmentontheedge.be5.metadata.model.Project) ProjectLoadException(com.developmentontheedge.be5.metadata.exception.ProjectLoadException) FileSystem(java.nio.file.FileSystem) FileSystemAlreadyExistsException(java.nio.file.FileSystemAlreadyExistsException) IOException(java.io.IOException) URISyntaxException(java.net.URISyntaxException) URL(java.net.URL)

Aggregations

Module (com.developmentontheedge.be5.metadata.model.Module)26 Project (com.developmentontheedge.be5.metadata.model.Project)21 Entity (com.developmentontheedge.be5.metadata.model.Entity)19 Query (com.developmentontheedge.be5.metadata.model.Query)12 Test (org.junit.Test)9 Path (java.nio.file.Path)8 ArrayList (java.util.ArrayList)6 Operation (com.developmentontheedge.be5.metadata.model.Operation)5 YamlDeserializer (com.developmentontheedge.be5.metadata.serialization.yaml.YamlDeserializer)5 HashMap (java.util.HashMap)5 ProjectElementException (com.developmentontheedge.be5.metadata.exception.ProjectElementException)4 TableDef (com.developmentontheedge.be5.metadata.model.TableDef)4 Map (java.util.Map)4 FreemarkerCatalog (com.developmentontheedge.be5.metadata.model.FreemarkerCatalog)3 FreemarkerScript (com.developmentontheedge.be5.metadata.model.FreemarkerScript)3 BeModelElement (com.developmentontheedge.be5.metadata.model.base.BeModelElement)3 List (java.util.List)3 FreemarkerSqlException (com.developmentontheedge.be5.metadata.exception.FreemarkerSqlException)2 ReadException (com.developmentontheedge.be5.metadata.exception.ReadException)2 ColumnDef (com.developmentontheedge.be5.metadata.model.ColumnDef)2