This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
The following commit(s) were added to refs/heads/master by this push:
new 91e768a9a Remove exception cause in Cayenne Modeler (#582)
91e768a9a is described below
commit 91e768a9a4214b0e7ed790cf3c2600fb43ac1702
Author: Aliaksei Peraverzeu <[email protected]>
AuthorDate: Tue Jun 18 15:26:57 2024 +0300
Remove exception cause in Cayenne Modeler (#582)
* Remove exception cause in Cayenne Modeler
* Fix creation of EmbeddedAttribute in Modeler
---------
Co-authored-by: Nikita Timofeev <[email protected]>
---
.../modeler/editor/ObjAttributeTableModel.java | 43 ++++++++++------------
.../editor/wrapper/ObjAttributeWrapper.java | 2 +-
2 files changed, 21 insertions(+), 24 deletions(-)
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjAttributeTableModel.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjAttributeTableModel.java
index c4986388a..b8d1cea37 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjAttributeTableModel.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjAttributeTableModel.java
@@ -210,20 +210,26 @@ public class ObjAttributeTableModel extends
CayenneTableModel<ObjAttributeWrappe
private String getDBAttributeType(ObjAttributeWrapper attribute,
DbAttribute dbAttribute) {
int type;
- if (dbAttribute == null) {
- if (!(attribute.getValue() instanceof EmbeddedAttribute)) {
+ if (dbAttribute != null) {
+ type = dbAttribute.getType();
+ } else {
+ if (attribute.getValue() instanceof EmbeddedAttribute) {
+ return null;
+ } else {
try {
- type =
TypesMapping.getSqlTypeByJava(attribute.getJavaClass());
+ Class<?> objAttributeClass;
+ try {
+ objAttributeClass = attribute.getObjAttributeClass();
+ } catch (DIRuntimeException e) {
+ return null;
+ }
+ type = TypesMapping.getSqlTypeByJava(objAttributeClass);
// have to catch the exception here to make sure that
exceptional situations
// (class doesn't exist, for example) don't prevent the
gui from properly updating.
- } catch (CayenneRuntimeException | DIRuntimeException cre) {
+ } catch (CayenneRuntimeException cre) {
return null;
}
- } else {
- return null;
}
- } else {
- type = dbAttribute.getType();
}
return TypesMapping.getSqlNameByType(type);
}
@@ -274,32 +280,23 @@ public class ObjAttributeTableModel extends
CayenneTableModel<ObjAttributeWrappe
}
private void setObjAttributeType(ObjAttributeWrapper attribute, Object
value) {
- String oldType = attribute.getType();
String newType = value != null ? value.toString() : null;
-
attribute.setType(newType);
- if (oldType == null || newType == null) {
- return;
- }
- String[] registeredTypes = ModelerUtil.getRegisteredTypeNames();
- Collection<String> registeredTypesList =
Arrays.asList(registeredTypes);
- if (registeredTypesList.contains(oldType) ==
registeredTypesList.contains(newType)) {
+ if
(Arrays.asList(ModelerUtil.getRegisteredTypeNames()).contains(newType) ||
newType == null) {
return;
}
- ObjEntity entity = attribute.getEntity();
-
ObjAttribute attributeNew;
- if (registeredTypesList.contains(newType) ||
-
!mediator.getEmbeddableNamesInCurrentDataDomain().contains(newType)) {
- attributeNew = new ObjAttribute();
- attributeNew.setDbAttributePath(attribute.getDbAttributePath());
- } else {
+ if
(mediator.getEmbeddableNamesInCurrentDataDomain().contains(newType)) {
attributeNew = new EmbeddedAttribute();
attributeNew.setDbAttributePath((String)null);
+ } else {
+ attributeNew = new ObjAttribute();
+ attributeNew.setDbAttributePath(attribute.getDbAttributePath());
}
+ ObjEntity entity = attribute.getEntity();
attributeNew.setName(attribute.getName());
attributeNew.setEntity(entity);
attributeNew.setParent(attribute.getParent());
diff --git
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/wrapper/ObjAttributeWrapper.java
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/wrapper/ObjAttributeWrapper.java
index f3d723d18..e8027422d 100644
---
a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/wrapper/ObjAttributeWrapper.java
+++
b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/wrapper/ObjAttributeWrapper.java
@@ -118,7 +118,7 @@ public class ObjAttributeWrapper implements
Wrapper<ObjAttribute> {
objAttribute.setParent(parent);
}
- public Class<?> getJavaClass() {
+ public Class<?> getObjAttributeClass() {
return objAttribute.getJavaClass();
}