use of com.developmentontheedge.be5.metadata.model.base.BeModelElement in project be5 by DevelopmentOnTheEdge.
the class DpsHelper method addDpsExcludedColumnsWithoutTags.
public <T extends DynamicPropertySet> T addDpsExcludedColumnsWithoutTags(T dps, BeModelElement modelElements, Collection<String> excludedColumns) {
Map<String, ColumnDef> columns = meta.getColumns(getEntity(modelElements));
ArrayList<String> excludedColumnsList = new ArrayList<>(excludedColumns);
for (Map.Entry<String, ColumnDef> entry : columns.entrySet()) {
if (!excludedColumnsList.contains(entry.getKey())) {
DynamicProperty dynamicProperty = getDynamicPropertyWithoutTags(entry.getValue(), modelElements);
dps.add(dynamicProperty);
}
excludedColumnsList.remove(entry.getKey());
}
for (String propertyName : excludedColumnsList) {
log.warning("Column " + propertyName + " not found in " + modelElements.getName());
}
return dps;
}
use of com.developmentontheedge.be5.metadata.model.base.BeModelElement in project be5 by DevelopmentOnTheEdge.
the class DpsHelper method checkDpsColumns.
public void checkDpsColumns(BeModelElement modelElements, DynamicPropertySet dps) {
StringBuilder errorMsg = new StringBuilder();
Map<String, ColumnDef> columns = meta.getColumns(getEntity(modelElements));
for (ColumnDef column : columns.values()) {
if (!column.isCanBeNull() && !column.isAutoIncrement() && column.getDefaultValue() == null && !dps.hasProperty(column.getName())) {
errorMsg.append("Dps not contain notNull column '").append(column.getName()).append("'\n");
}
}
for (DynamicProperty property : dps) {
if (!columns.keySet().contains(property.getName())) {
errorMsg.append("Entity not contain column '").append(property.getName()).append("'\n");
}
}
if (!errorMsg.toString().isEmpty()) {
throw Be5Exception.internal("Dps columns errors for modelElements '" + modelElements.getName() + "'\n" + errorMsg);
}
}
use of com.developmentontheedge.be5.metadata.model.base.BeModelElement in project be5 by DevelopmentOnTheEdge.
the class DpsHelper method addDpForColumnsWithoutTags.
public <T extends DynamicPropertySet> T addDpForColumnsWithoutTags(T dps, BeModelElement modelElements, Collection<String> columnNames) {
Map<String, ColumnDef> columns = meta.getColumns(getEntity(modelElements));
for (String propertyName : columnNames) {
ColumnDef columnDef = columns.get(propertyName);
if (columnDef != null) {
DynamicProperty dynamicProperty = getDynamicPropertyWithoutTags(columnDef, modelElements);
dps.add(dynamicProperty);
} else {
throw Be5Exception.internal("Entity '" + modelElements.getName() + "' not contain column " + propertyName);
}
}
return dps;
}
use of com.developmentontheedge.be5.metadata.model.base.BeModelElement in project be5 by DevelopmentOnTheEdge.
the class Project method getModulesAndApplication.
public List<Module> getModulesAndApplication() {
List<Module> result = getModules().stream().toList();
BeModelElement appElement = get(getProjectOrigin());
if (appElement instanceof Module)
result.add((Module) appElement);
return result;
}
use of com.developmentontheedge.be5.metadata.model.base.BeModelElement in project be5 by DevelopmentOnTheEdge.
the class BeModelElementSupport method mergeThis.
protected void mergeThis(BeModelElement other, boolean inherit) {
if (inherit) {
this.prototype = other;
} else {
this.prototype = null;
Set<String> customizableProperties = new HashSet<>(getCustomizableProperties());
customizableProperties.removeAll(getCustomizedProperties());
for (String customizableProperty : customizableProperties) {
try {
Object value = Beans.getBeanPropertyValue(other, customizableProperty);
ComponentModel info = ComponentFactory.getModel(this, ComponentFactory.Policy.DEFAULT);
Property property = info.findProperty(customizableProperty);
if (property != null) {
if (!customizableProperty.equals("roles")) {
property.setValue(value);
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
}
Aggregations