use of com.developmentontheedge.be5.metadata.model.Project in project be5 by DevelopmentOnTheEdge.
the class ModuleLoader2 method mergeAllModules.
public static void mergeAllModules(final Project model, List<Project> modules, final LoadContext context) throws ProjectLoadException {
modules = new LinkedList<>(modules);
for (Project module : modules) {
module.mergeHostProject(model);
}
final Project compositeModule = foldModules(model, modules, context);
if (compositeModule != null) {
model.merge(compositeModule);
}
}
use of com.developmentontheedge.be5.metadata.model.Project in project be5 by DevelopmentOnTheEdge.
the class ModuleLoader2 method mergeModules.
public static void mergeModules(Project be5Project, ProcessController logger) throws ProjectLoadException {
long startTime = System.nanoTime();
LoadContext loadContext = new LoadContext();
try {
ModuleLoader2.mergeAllModules(be5Project, logger, loadContext);
} catch (ProjectLoadException e) {
throw new ProjectLoadException("Merge modules", e);
}
loadContext.check();
log.info(ModuleLoader2.logLoadedProject(be5Project, startTime));
}
use of com.developmentontheedge.be5.metadata.model.Project in project be5 by DevelopmentOnTheEdge.
the class ModuleLoader2 method findAndLoadProjectWithModules.
public static Project findAndLoadProjectWithModules() throws ProjectLoadException {
loadAllProjects(true);
Project project = null;
for (Map.Entry<String, Project> module : modulesMap.entrySet()) {
if (module.getValue() != null && !module.getValue().isModuleProject()) {
if (project != null) {
throw new RuntimeException("Several projects were found: " + project + ", " + module);
} else {
project = module.getValue();
}
}
}
if (project == null) {
// todo create new not module project for tests?
log.info("Project not found, try load main module.");
project = new ProjectTopologicalSort(modulesMap.values()).getRoot();
}
ModuleLoader2.mergeModules(project, new JULLogger(log));
return project;
}
use of com.developmentontheedge.be5.metadata.model.Project in project be5 by DevelopmentOnTheEdge.
the class TableDef method getCreateDdl.
@Override
public String getCreateDdl() {
StringBuilder sb = new StringBuilder();
Project project = getProject();
Rdbms dbms = project.getDatabaseSystem();
DbmsTypeManager typeManager = dbms.getTypeManager();
sb.append(typeManager.getCreateTableClause(getEntityName()) + " (\n");
StringBuilder triggers = new StringBuilder();
for (ColumnDef column : getColumns().getAvailableElements()) {
sb.append(typeManager.getColumnDefinitionClause(column));
sb.append(",\n");
triggers.append(typeManager.getColumnTriggerDefinition(column));
}
if (getColumnsCount() > 0) {
sb.delete(sb.length() - 2, sb.length());
}
sb.append(");\n");
ColumnDef autoincrementColumn = getAutoincrementColumn();
if (autoincrementColumn != null) {
String value = getStartId();
if (value != null)
sb.append(typeManager.getStartingIncrementDefinition(getEntityName(), autoincrementColumn.getName(), Long.parseLong(value)));
}
sb.append(triggers);
List<String> indexDdls = new ArrayList<>();
for (IndexDef index : getIndices().getAvailableElements()) {
if (!typeManager.isFunctionalIndexSupported() && index.isFunctional())
continue;
if (dbms == Rdbms.DB2 && index.getName().length() > Rdbms.DB2_INDEX_LENGTH)
continue;
indexDdls.add(index.getCreateDdl() + "\n");
}
Collections.sort(indexDdls);
sb.append(String.join("", indexDdls));
return sb.toString();
}
use of com.developmentontheedge.be5.metadata.model.Project in project be5 by DevelopmentOnTheEdge.
the class ConnectionProfileNameSelector method getTags.
/**
* @return local and remote profiles, sorted by name
*/
@Override
public String[] getTags() {
final Project project = (Project) getBean();
final String[] profileNames = project.getProfileNames();
return profileNames;
}
Aggregations