You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2022/07/14 14:35:05 UTC
[cayenne] branch master updated: Code cleanup related to added generics in the Entity/Attribute/Relationship hierarchy
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 474de1353 Code cleanup related to added generics in the Entity/Attribute/Relationship hierarchy
474de1353 is described below
commit 474de13531c7b9ecd4ab995b536c69195675cf86
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Thu Jul 14 17:34:54 2022 +0300
Code cleanup related to added generics in the Entity/Attribute/Relationship hierarchy
---
.../java/org/apache/cayenne/gen/DataMapUtils.java | 13 ++-
.../java/org/apache/cayenne/gen/EntityUtils.java | 9 +-
.../org/apache/cayenne/gen/DataMapUtilsTest.java | 17 +++-
.../cayenne/dbsync/merge/DbEntityMerger.java | 9 +-
.../dbsync/merge/context/EntityMergeSupport.java | 13 +--
.../dbsync/reverse/dbload/RelationshipLoader.java | 1 -
.../dbimport/ManyToManyCandidateEntityTest.java | 15 ++-
.../project/validation/SelectQueryValidator.java | 14 +--
.../jdbc/reader/DefaultRowReaderFactory.java | 20 ++--
.../org/apache/cayenne/dba/QuotingStrategy.java | 4 +-
.../org/apache/cayenne/exp/parser/ASTDbIdPath.java | 4 +-
.../org/apache/cayenne/exp/parser/ASTDbPath.java | 5 +-
.../org/apache/cayenne/exp/parser/ASTObjPath.java | 7 +-
.../org/apache/cayenne/exp/parser/ASTPath.java | 8 +-
.../org/apache/cayenne/map/AliasPathComponent.java | 17 ++--
.../java/org/apache/cayenne/map/Attribute.java | 10 +-
.../java/org/apache/cayenne/map/DbAttribute.java | 13 ++-
.../org/apache/cayenne/map/DbRelationship.java | 9 +-
.../main/java/org/apache/cayenne/map/Entity.java | 50 +++++-----
.../org/apache/cayenne/map/EntityResolver.java | 4 +-
.../java/org/apache/cayenne/map/PathComponent.java | 8 +-
.../apache/cayenne/map/PathComponentIterator.java | 28 +++---
.../java/org/apache/cayenne/map/Relationship.java | 19 ++--
.../cayenne/map/RelationshipPathComponent.java | 18 ++--
.../apache/cayenne/map/event/AttributeEvent.java | 12 +--
.../org/apache/cayenne/map/event/EntityEvent.java | 12 +--
.../cayenne/map/event/RelationshipEvent.java | 16 ++--
.../cayenne/access/DataContextEJBQLDeletePKIT.java | 3 +-
.../java/org/apache/cayenne/map/MockAttribute.java | 2 -
.../apache/cayenne/map/MockObjRelationship.java | 2 -
.../org/apache/cayenne/map/MockRelationship.java | 5 +-
.../apache/cayenne/modeler/ProjectTreeModel.java | 14 +--
.../apache/cayenne/modeler/ProjectTreeView.java | 4 +-
.../modeler/action/BaseViewEntityAction.java | 6 +-
.../modeler/action/CreateAttributeAction.java | 2 +-
.../modeler/action/CreateDbEntityAction.java | 2 +-
.../modeler/action/CreateRelationshipAction.java | 2 +-
.../modeler/action/DbEntityCounterpartAction.java | 2 +-
.../apache/cayenne/modeler/action/FindAction.java | 18 ++--
.../modeler/action/ObjEntityCounterpartAction.java | 4 +-
.../action/ObjEntityToSuperEntityAction.java | 3 +-
.../modeler/action/RemoveAttributeAction.java | 2 +-
.../InferRelationshipsController.java | 20 ++--
.../autorelationship/InferRelationshipsDialog.java | 6 +-
.../dialog/objentity/ObjAttributeInfoDialog.java | 24 ++---
.../dialog/objentity/ObjRelationshipInfo.java | 15 ++-
.../dialog/objentity/ObjRelationshipInfoView.java | 12 +--
.../dialog/validator/AttributeErrorMsg.java | 27 ++----
.../modeler/dialog/validator/EntityErrorMsg.java | 6 +-
.../dialog/validator/RelationshipErrorMsg.java | 8 +-
.../editor/CallbackDescriptorTableModel.java | 2 +-
.../modeler/editor/ObjEntityTabbedView.java | 6 +-
.../modeler/editor/ObjRelationshipTableModel.java | 23 +++--
.../modeler/editor/RootSelectionHandler.java | 2 +-
.../modeler/editor/SQLTemplatePrefetchTab.java | 8 +-
.../modeler/editor/SelectPropertiesPanel.java | 24 ++---
.../cayenne/modeler/editor/SelectQueryMainTab.java | 4 +-
.../modeler/editor/SelectQueryOrderingTab.java | 33 ++-----
.../modeler/editor/SelectQueryPrefetchTab.java | 6 +-
.../editor/dbentity/DbEntityTabbedView.java | 2 +-
.../editor/wrapper/ObjAttributeWrapper.java | 1 -
.../modeler/event/AttributeDisplayEvent.java | 12 +--
.../cayenne/modeler/event/EntityDisplayEvent.java | 12 +--
.../modeler/event/RelationshipDisplayEvent.java | 12 +--
.../cayenne/modeler/graph/BaseGraphBuilder.java | 68 +++++++-------
.../cayenne/modeler/graph/DataDomainGraphTab.java | 4 +-
.../cayenne/modeler/graph/DbGraphBuilder.java | 31 ++++---
.../cayenne/modeler/graph/EntityCellMetadata.java | 13 +--
.../apache/cayenne/modeler/graph/GraphBuilder.java | 6 +-
.../cayenne/modeler/graph/ObjGraphBuilder.java | 38 ++++----
.../modeler/graph/action/EntityDisplayAction.java | 4 +-
.../modeler/graph/action/RemoveEntityAction.java | 6 +-
.../graph/action/ShowGraphEntityAction.java | 7 +-
.../cayenne/modeler/undo/RemoveUndoableEdit.java | 102 +++++----------------
.../apache/cayenne/modeler/util/CayenneAction.java | 2 +-
.../cayenne/modeler/util/CayenneTableModel.java | 13 ++-
.../apache/cayenne/modeler/util/CellRenderers.java | 3 +-
.../util/DbAttributePathComboBoxEditor.java | 21 ++---
.../util/DbRelationshipPathComboBoxEditor.java | 12 +--
.../EntityTreeAttributeRelationshipFilter.java | 11 +--
.../cayenne/modeler/util/EntityTreeFilter.java | 4 +-
.../modeler/util/EntityTreeRelationshipFilter.java | 6 +-
.../util/PathChooserComboBoxCellEditor.java | 12 +--
.../apache/cayenne/modeler/util/ProjectUtil.java | 39 +++-----
.../util/state/AttributeDisplayEventType.java | 10 +-
.../modeler/util/state/EntityDisplayEventType.java | 4 +-
.../util/state/RelationshipDisplayEventType.java | 10 +-
.../cayenne/modeler/event/AttributeEventTest.java | 4 +-
.../cayenne/modeler/event/EntityEventTest.java | 20 ++--
.../modeler/event/RelationshipEventTest.java | 5 +-
.../java/org/apache/cayenne/wocompat/EOQuery.java | 60 ++++++------
91 files changed, 535 insertions(+), 671 deletions(-)
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
index 57b0ba33e..455ae0e53 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/DataMapUtils.java
@@ -24,7 +24,6 @@ import org.apache.cayenne.exp.ExpressionException;
import org.apache.cayenne.exp.ExpressionParameter;
import org.apache.cayenne.exp.parser.ASTList;
import org.apache.cayenne.exp.parser.ASTObjPath;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
@@ -73,10 +72,10 @@ public class DataMapUtils {
* @param query select query descriptor
* @return Parameter names.
*/
- public Collection getParameterNames(SelectQueryDescriptor query) {
+ public Collection<String> getParameterNames(SelectQueryDescriptor query) {
if (query.getQualifier() == null) {
- return Collections.EMPTY_SET;
+ return Collections.emptySet();
}
Map<String, String> queryParameters = queriesMap.get(query.getName());
@@ -130,7 +129,7 @@ public class DataMapUtils {
* to be parsed
* @return List of parameter names.
*/
- private Set parseQualifier(String qualifierString) {
+ private Set<String> parseQualifier(String qualifierString) {
Set<String> result = new LinkedHashSet<>();
Pattern pattern = Pattern.compile("\\$[\\w]+");
Matcher matcher = pattern.matcher(qualifierString);
@@ -143,7 +142,7 @@ public class DataMapUtils {
}
public boolean hasParameters(SelectQueryDescriptor query) {
- Map queryParameters = queriesMap.get(query.getName());
+ Map<String, String> queryParameters = queriesMap.get(query.getName());
if (queryParameters == null) {
return false;
@@ -178,8 +177,8 @@ public class DataMapUtils {
}
if (operand instanceof ASTObjPath) {
- PathComponent<ObjAttribute, ObjRelationship> component = ((Entity) root).lastPathComponent(
- (ASTObjPath) operand, Collections.emptyMap());
+ PathComponent<ObjAttribute, ObjRelationship> component = ((ObjEntity) root)
+ .lastPathComponent((ASTObjPath) operand, Collections.emptyMap());
ObjAttribute attribute = component.getAttribute();
if (attribute != null) {
typeName = attribute.getType();
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/EntityUtils.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/EntityUtils.java
index aa30abac8..dbe0bc422 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/EntityUtils.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/EntityUtils.java
@@ -30,7 +30,6 @@ import org.apache.cayenne.map.MappingNamespace;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.map.Relationship;
/**
* Attributes and Methods for working with ObjEntities.
@@ -133,7 +132,7 @@ public class EntityUtils {
return false;
}
- for (Relationship r : anObjEntity.getRelationships()) {
+ for (ObjRelationship r : anObjEntity.getRelationships()) {
if (r.isToMany()) {
return true;
}
@@ -163,7 +162,7 @@ public class EntityUtils {
return false;
}
- for (Relationship r : anObjEntity.getDeclaredRelationships()) {
+ for (ObjRelationship r : anObjEntity.getDeclaredRelationships()) {
if (r.isToMany()) {
return true;
}
@@ -188,7 +187,7 @@ public class EntityUtils {
return false;
}
- for (Relationship r : anObjEntity.getRelationships()) {
+ for (ObjRelationship r : anObjEntity.getRelationships()) {
if (!r.isToMany()) {
return true;
}
@@ -214,7 +213,7 @@ public class EntityUtils {
return false;
}
- for (Relationship r : anObjEntity.getDeclaredRelationships()) {
+ for (ObjRelationship r : anObjEntity.getDeclaredRelationships()) {
if (!r.isToMany()) {
return true;
}
diff --git a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/DataMapUtilsTest.java b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/DataMapUtilsTest.java
index 89a7a5e09..10d86b6a6 100644
--- a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/DataMapUtilsTest.java
+++ b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/DataMapUtilsTest.java
@@ -19,15 +19,22 @@
package org.apache.cayenne.gen;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.cayenne.exp.Expression;
import org.apache.cayenne.exp.ExpressionFactory;
-import org.apache.cayenne.map.*;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.ObjAttribute;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.SelectQueryDescriptor;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import java.util.*;
-
import static org.junit.Assert.assertEquals;
public class DataMapUtilsTest {
@@ -66,7 +73,7 @@ public class DataMapUtilsTest {
map.put(param, "java.lang.String");
dataMapUtils.queriesMap.put("name", map);
- Collection collection = dataMapUtils.getParameterNames(selectQueryDescriptor);
+ Collection<String> collection = dataMapUtils.getParameterNames(selectQueryDescriptor);
result.add(param);
@@ -93,7 +100,7 @@ public class DataMapUtilsTest {
selectQueryDescriptor.setName("name");
selectQueryDescriptor.setRoot(objEntity);
- Collection collection = dataMapUtils.getParameterNames(selectQueryDescriptor);
+ Collection<String> collection = dataMapUtils.getParameterNames(selectQueryDescriptor);
Map<String, Map<String, String>> queriesMap = new HashMap<>();
Map<String, String> map = new HashMap<>();
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbEntityMerger.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbEntityMerger.java
index 114e8e1d6..1d600a9ad 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbEntityMerger.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/DbEntityMerger.java
@@ -29,7 +29,6 @@ import java.util.Set;
import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory;
import org.apache.cayenne.dbsync.merge.token.MergerToken;
import org.apache.cayenne.dbsync.reverse.filters.FiltersConfig;
-import org.apache.cayenne.map.Attribute;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
@@ -40,8 +39,8 @@ class DbEntityMerger extends AbstractMerger<DataMap, DbEntity> {
private final FiltersConfig filtersConfig;
private final boolean skipPKTokens;
- private DataMap originalDataMap;
- private DataMap importedDataMap;
+ private final DataMap originalDataMap;
+ private final DataMap importedDataMap;
DbEntityMerger(MergerTokenFactory tokenFactory, DataMap original, DataMap imported,
FiltersConfig filtersConfig, boolean skipPKTokens) {
@@ -129,9 +128,9 @@ class DbEntityMerger extends AbstractMerger<DataMap, DbEntity> {
);
}
- private Set<String> upperCaseEntityNames(Collection<? extends Attribute> attributes) {
+ private Set<String> upperCaseEntityNames(Collection<DbAttribute> attributes) {
Set<String> names = new HashSet<>();
- for (Attribute attr : attributes) {
+ for (DbAttribute attr : attributes) {
names.add(attr.getName().toUpperCase());
}
return names;
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/EntityMergeSupport.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/EntityMergeSupport.java
index 726e3efc1..80af49e80 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/EntityMergeSupport.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/merge/context/EntityMergeSupport.java
@@ -31,11 +31,9 @@ import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.util.DeleteRuleUpdater;
import org.apache.cayenne.util.EntityMergeListener;
import org.slf4j.Logger;
@@ -213,11 +211,7 @@ public class EntityMergeSupport {
Map<String, ObjEntity> objEntities = entity.getDataMap().getSubclassesForObjEntity(entity);
boolean hasFlattingAttributes = false;
- boolean needGeneratedEntity = true;
-
- if (objEntities.containsKey(targetEntityName)) {
- needGeneratedEntity = false;
- }
+ boolean needGeneratedEntity = !objEntities.containsKey(targetEntityName);
for (ObjEntity subObjEntity : objEntities.values()) {
for (ObjAttribute objAttribute : subObjEntity.getAttributes()) {
@@ -275,7 +269,7 @@ public class EntityMergeSupport {
}
}
} else {
- for (Entity mappedTarget : mappedObjEntities) {
+ for (ObjEntity mappedTarget : mappedObjEntities) {
createObjRelationship(entity, dbRelationship, mappedTarget.getName());
}
}
@@ -406,8 +400,7 @@ public class EntityMergeSupport {
return false;
}
- for(Relationship relationship : entity.getRelationships()) {
- ObjRelationship objRelationship = (ObjRelationship)relationship;
+ for(ObjRelationship objRelationship : entity.getRelationships()) {
if(objRelationshipHasDbRelationship(objRelationship, dbRelationship)) {
return false;
}
diff --git a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipLoader.java b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipLoader.java
index 2bd96ceac..fdd2899b1 100644
--- a/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipLoader.java
+++ b/cayenne-dbsync/src/main/java/org/apache/cayenne/dbsync/reverse/dbload/RelationshipLoader.java
@@ -31,7 +31,6 @@ import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.util.EqualsBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbimport/ManyToManyCandidateEntityTest.java b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbimport/ManyToManyCandidateEntityTest.java
index 6d339c49e..be7da727a 100644
--- a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbimport/ManyToManyCandidateEntityTest.java
+++ b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbimport/ManyToManyCandidateEntityTest.java
@@ -42,7 +42,6 @@ import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory;
import org.apache.cayenne.di.spi.DefaultClassLoaderManager;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.resource.URLResource;
import org.junit.Before;
import org.junit.Test;
@@ -84,14 +83,14 @@ public class ManyToManyCandidateEntityTest {
}
@Test
- public void testMatchingForManyToManyEntity() throws Exception {
+ public void testMatchingForManyToManyEntity() {
ObjEntity manyToManyEntity = map.getObjEntity("Table1Table2");
assertNotNull(ManyToManyCandidateEntity.build(manyToManyEntity));
}
@Test
- public void testMatchingForNotManyToManyEntity() throws Exception {
+ public void testMatchingForNotManyToManyEntity() {
ObjEntity entity = map.getObjEntity("Table1");
assertNull(ManyToManyCandidateEntity.build(entity));
@@ -101,19 +100,17 @@ public class ManyToManyCandidateEntityTest {
public void testOptimisationForManyToManyEntity() {
ObjEntity manyToManyEntity = map.getObjEntity("Table1Table2");
- ManyToManyCandidateEntity.build(manyToManyEntity).optimizeRelationships(
- new DefaultObjectNameGenerator(NoStemStemmer.getInstance()));
+ ManyToManyCandidateEntity.build(manyToManyEntity)
+ .optimizeRelationships(new DefaultObjectNameGenerator(NoStemStemmer.getInstance()));
ObjEntity table1Entity = map.getObjEntity("Table1");
ObjEntity table2Entity = map.getObjEntity("Table2");
assertEquals(1, table1Entity.getRelationships().size());
- assertEquals(table2Entity, new ArrayList<Relationship>(table1Entity.getRelationships()).get(0)
- .getTargetEntity());
+ assertEquals(table2Entity, new ArrayList<>(table1Entity.getRelationships()).get(0).getTargetEntity());
assertEquals(1, table2Entity.getRelationships().size());
- assertEquals(table1Entity, new ArrayList<Relationship>(table2Entity.getRelationships()).get(0)
- .getTargetEntity());
+ assertEquals(table1Entity, new ArrayList<>(table2Entity.getRelationships()).get(0).getTargetEntity());
}
}
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/SelectQueryValidator.java b/cayenne-project/src/main/java/org/apache/cayenne/project/validation/SelectQueryValidator.java
index e27c87a72..8d8ad578f 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/validation/SelectQueryValidator.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/validation/SelectQueryValidator.java
@@ -39,7 +39,7 @@ class SelectQueryValidator extends BaseQueryValidator {
validateCacheGroup(query, validationResult);
// Resolve root to Entity for further validation
- Entity root = validateRoot(query, validationResult);
+ Entity<?,?,?> root = validateRoot(query, validationResult);
// validate path-based parts
if (root != null) {
@@ -58,13 +58,13 @@ class SelectQueryValidator extends BaseQueryValidator {
}
}
- void validatePrefetch(Entity root, String path, ValidationResult validationResult) {
+ void validatePrefetch(Entity<?,?,?> root, String path, ValidationResult validationResult) {
// TODO: andrus 03/10/2010 - should this be implemented?
}
void validateOrdering(
QueryDescriptor query,
- Entity root,
+ Entity<?,?,?> root,
Ordering ordering,
ValidationResult validationResult) {
@@ -81,13 +81,13 @@ class SelectQueryValidator extends BaseQueryValidator {
}
void validateQualifier(
- Entity root,
+ Entity<?,?,?> root,
Expression qualifier,
ValidationResult validationResult) {
// TODO: andrus 03/10/2010 - should this be implemented?
}
- Entity validateRoot(QueryDescriptor query, ValidationResult validationResult) {
+ Entity<?,?,?> validateRoot(QueryDescriptor query, ValidationResult validationResult) {
DataMap map = query.getDataMap();
if (query.getRoot() == null && map != null) {
addFailure(validationResult, query, "Query '%s' has no root", query.getName());
@@ -101,11 +101,11 @@ class SelectQueryValidator extends BaseQueryValidator {
if (map == null) {
// maybe standalone entity, otherwise bail...
- return (query.getRoot() instanceof Entity) ? (Entity) query.getRoot() : null;
+ return (query.getRoot() instanceof Entity) ? (Entity<?,?,?>) query.getRoot() : null;
}
if (query.getRoot() instanceof Entity) {
- return (Entity) query.getRoot();
+ return (Entity<?,?,?>) query.getRoot();
}
// can't validate Class root - it is likely not accessible from here...
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
index 4394a08ed..a22ea0b5e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
@@ -33,8 +33,8 @@ import org.apache.cayenne.access.types.ExtendedType;
import org.apache.cayenne.access.types.ExtendedTypeMap;
import org.apache.cayenne.dba.DbAdapter;
import org.apache.cayenne.dba.TypesMapping;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjAttribute;
+import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.query.EmbeddableResultSegment;
import org.apache.cayenne.query.EntityResultSegment;
import org.apache.cayenne.query.QueryMetadata;
@@ -129,12 +129,12 @@ public class DefaultRowReaderFactory implements RowReaderFactory {
}
}
- protected class PostprocessorFactory {
+ protected static class PostprocessorFactory {
- private QueryMetadata queryMetadata;
- private ExtendedTypeMap extendedTypes;
- private Map<ObjAttribute, ColumnDescriptor> attributeOverrides;
- private RowDescriptor rowDescriptor;
+ private final QueryMetadata queryMetadata;
+ private final ExtendedTypeMap extendedTypes;
+ private final Map<ObjAttribute, ColumnDescriptor> attributeOverrides;
+ private final RowDescriptor rowDescriptor;
private boolean created;
private DataRowPostProcessor postProcessor;
@@ -170,7 +170,7 @@ public class DefaultRowReaderFactory implements RowReaderFactory {
for (Entry<ObjAttribute, ColumnDescriptor> entry : attributeOverrides.entrySet()) {
ObjAttribute attribute = entry.getKey();
- Entity entity = attribute.getEntity();
+ ObjEntity entity = attribute.getEntity();
String key = null;
int jdbcType = TypesMapping.NOT_DEFINED;
@@ -195,9 +195,9 @@ public class DefaultRowReaderFactory implements RowReaderFactory {
continue;
}
- ExtendedType converter = extendedTypes.getRegisteredType(attribute.getType());
-
- Collection<ColumnOverride> overrides = columnOverrides.computeIfAbsent(entity.getName(), k -> new ArrayList<>(3));
+ ExtendedType<?> converter = extendedTypes.getRegisteredType(attribute.getType());
+ Collection<ColumnOverride> overrides = columnOverrides
+ .computeIfAbsent(entity.getName(), k -> new ArrayList<>(3));
overrides.add(new ColumnOverride(index, key, converter, jdbcType));
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/dba/QuotingStrategy.java b/cayenne-server/src/main/java/org/apache/cayenne/dba/QuotingStrategy.java
index 7c86e68c2..011bcc4b2 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/dba/QuotingStrategy.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/dba/QuotingStrategy.java
@@ -58,7 +58,7 @@ public interface QuotingStrategy {
/**
* @since 4.0
*/
- default String quotedIdentifier(Entity entity, String... identifierParts) {
+ default String quotedIdentifier(DbEntity entity, String... identifierParts) {
return quotedIdentifier(entity.getDataMap(), identifierParts);
}
@@ -71,7 +71,7 @@ public interface QuotingStrategy {
* Append quoted identifier to provided appender
* @since 4.2
*/
- default void quotedIdentifier(Entity entity, CharSequence identifier, Appendable appender) {
+ default void quotedIdentifier(DbEntity entity, CharSequence identifier, Appendable appender) {
quotedIdentifier(entity.getDataMap(), identifier, appender);
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDbIdPath.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDbIdPath.java
index 30568f7b5..5d7ee1b50 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDbIdPath.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDbIdPath.java
@@ -99,13 +99,13 @@ public class ASTDbIdPath extends ASTDbPath {
@Override
protected Object evaluateNode(Object o) {
if (o instanceof Entity) {
- return evaluateEntityNode((Entity) o);
+ return evaluateEntityNode((Entity<?,?,?>) o);
}
return evaluateNode(o, path);
}
@Override
- protected CayenneMapEntry evaluateEntityNode(Entity entity) {
+ protected CayenneMapEntry evaluateEntityNode(Entity<?,?,?> entity) {
int lastDot = path.lastIndexOf('.');
String objPath = null;
String id = path;
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDbPath.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDbPath.java
index dae38b989..cc4281e07 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDbPath.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTDbPath.java
@@ -68,7 +68,7 @@ public class ASTDbPath extends ASTPath {
protected Object evaluateNode(Object o) throws Exception {
if (o instanceof Entity) {
- return evaluateEntityNode((Entity) o);
+ return evaluateEntityNode((Entity<?,?,?>) o);
}
Map<?, ?> map = toMap(o);
@@ -199,7 +199,8 @@ public class ASTDbPath extends ASTPath {
/**
* Helper method to evaluate path expression with Cayenne Entity.
*/
- protected CayenneMapEntry evaluateEntityNode(Entity entity) {
+ @Override
+ protected CayenneMapEntry evaluateEntityNode(Entity<?,?,?> entity) {
if(entity instanceof ObjEntity) {
entity = ((ObjEntity) entity).getDbEntity();
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTObjPath.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTObjPath.java
index b118a9161..7255dbd2d 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTObjPath.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTObjPath.java
@@ -61,8 +61,11 @@ public class ASTObjPath extends ASTPath {
@Override
protected Object evaluateNode(Object o) throws Exception {
- return (o instanceof DataObject) ? ((DataObject) o).readNestedProperty(path)
- : (o instanceof Entity) ? evaluateEntityNode((Entity) o) : PropertyUtils.getProperty(o, path);
+ return (o instanceof DataObject)
+ ? ((DataObject) o).readNestedProperty(path)
+ : (o instanceof Entity)
+ ? evaluateEntityNode((Entity<?,?,?>) o)
+ : PropertyUtils.getProperty(o, path);
}
/**
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTPath.java b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTPath.java
index 77bd2718a..7d5561db7 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTPath.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/exp/parser/ASTPath.java
@@ -22,10 +22,8 @@ package org.apache.cayenne.exp.parser;
import java.util.Iterator;
import java.util.Map;
-import org.apache.cayenne.map.Attribute;
import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.PathComponent;
-import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.util.CayenneMapEntry;
/**
@@ -93,9 +91,9 @@ public abstract class ASTPath extends SimpleNode {
/**
* Helper method to evaluate path expression with Cayenne Entity.
*/
- protected CayenneMapEntry evaluateEntityNode(Entity entity) {
- Iterator<PathComponent<Attribute, Relationship>> path = entity.resolvePath(this, getPathAliases()).iterator();
- PathComponent<Attribute, Relationship> next = null;
+ protected CayenneMapEntry evaluateEntityNode(Entity<?,?,?> entity) {
+ Iterator<? extends PathComponent<?, ?>> path = entity.resolvePath(this, getPathAliases()).iterator();
+ PathComponent<?, ?> next = null;
while (path.hasNext()) {
next = path.next();
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/AliasPathComponent.java b/cayenne-server/src/main/java/org/apache/cayenne/map/AliasPathComponent.java
index 86822d733..1be0327dd 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/AliasPathComponent.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/AliasPathComponent.java
@@ -25,24 +25,23 @@ import java.util.Collection;
*
* @since 3.0
*/
-class AliasPathComponent<T extends Attribute, U extends Relationship> implements
- PathComponent<T, U> {
+class AliasPathComponent<A extends Attribute<?, A, R>, R extends Relationship<?, A, R>> implements PathComponent<A, R> {
- private String alias;
- private Collection<PathComponent<T, U>> path;
- private boolean last;
+ private final String alias;
+ private final Collection<PathComponent<A, R>> path;
+ private final boolean last;
- AliasPathComponent(String alias, Collection<PathComponent<T, U>> path, boolean last) {
+ AliasPathComponent(String alias, Collection<PathComponent<A, R>> path, boolean last) {
this.alias = alias;
this.path = path;
this.last = last;
}
- public Iterable<PathComponent<T, U>> getAliasedPath() {
+ public Iterable<PathComponent<A, R>> getAliasedPath() {
return path;
}
- public T getAttribute() {
+ public A getAttribute() {
return null;
}
@@ -54,7 +53,7 @@ class AliasPathComponent<T extends Attribute, U extends Relationship> implements
return alias;
}
- public U getRelationship() {
+ public R getRelationship() {
return null;
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/Attribute.java b/cayenne-server/src/main/java/org/apache/cayenne/map/Attribute.java
index 3dc4d318a..e9cb8aa6f 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/Attribute.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/Attribute.java
@@ -32,11 +32,11 @@ import org.apache.cayenne.util.XMLSerializable;
* are described by attributes are Java class properties and database table columns.
*
*/
-public abstract class Attribute<E extends Entity<E,T,U>, T extends Attribute<E,T,U>, U extends Relationship<E,T,U>>
+public abstract class Attribute<E extends Entity<E, A, R>, A extends Attribute<E, A, R>, R extends Relationship<E, A, R>>
implements CayenneMapEntry, XMLSerializable, Serializable {
protected String name;
- protected Entity<E,T,U> entity;
+ protected Entity<E, A, R> entity;
/**
* Creates an unnamed Attribute.
@@ -62,14 +62,14 @@ public abstract class Attribute<E extends Entity<E,T,U>, T extends Attribute<E,T
/**
* Returns parent entity that holds this attribute.
*/
- public Entity<E,T,U> getEntity() {
+ public Entity<E, A, R> getEntity() {
return entity;
}
/**
* Sets parent entity that holds this attribute.
*/
- public void setEntity(Entity<E,T,U> entity) {
+ public void setEntity(Entity<E, A, R> entity) {
this.entity = entity;
}
@@ -91,6 +91,6 @@ public abstract class Attribute<E extends Entity<E,T,U>, T extends Attribute<E,T
throw new IllegalArgumentException("Expected null or Entity, got: " + parent);
}
- setEntity((Entity<E,T,U>) parent);
+ setEntity((Entity<E, A, R>) parent);
}
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbAttribute.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbAttribute.java
index 1c1cd9f44..5d707a512 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbAttribute.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbAttribute.java
@@ -23,7 +23,6 @@ import org.apache.cayenne.configuration.ConfigurationNode;
import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
import org.apache.cayenne.dba.TypesMapping;
import org.apache.cayenne.map.event.AttributeEvent;
-import org.apache.cayenne.map.event.DbAttributeListener;
import org.apache.cayenne.util.XMLEncoder;
/**
@@ -194,9 +193,9 @@ public class DbAttribute extends Attribute<DbEntity, DbAttribute, DbRelationship
if (this.primaryKey != primaryKey) {
this.primaryKey = primaryKey;
- Entity e = this.getEntity();
- if (e instanceof DbAttributeListener) {
- ((DbAttributeListener) e).dbAttributeChanged(new AttributeEvent(this, this, e));
+ DbEntity e = this.getEntity();
+ if (e != null) {
+ e.dbAttributeChanged(new AttributeEvent(this, this, e));
}
}
}
@@ -243,9 +242,9 @@ public class DbAttribute extends Attribute<DbEntity, DbAttribute, DbRelationship
if (this.generated != generated) {
this.generated = generated;
- Entity e = this.getEntity();
- if (e instanceof DbAttributeListener) {
- ((DbAttributeListener) e).dbAttributeChanged(new AttributeEvent(this, this, e));
+ DbEntity e = this.getEntity();
+ if (e != null) {
+ e.dbAttributeChanged(new AttributeEvent(this, this, e));
}
}
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java b/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
index 98351a78c..15145ca72 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/DbRelationship.java
@@ -56,11 +56,6 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
super(name);
}
- @Override
- public DbEntity getSourceEntity() {
- return (DbEntity) super.getSourceEntity();
- }
-
/**
* @since 3.1
*/
@@ -111,7 +106,6 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
*
* @since 1.1
*/
- @SuppressWarnings("unchecked")
public Collection<DbAttribute> getTargetAttributes() {
return mapJoinsToAttributes(DbJoin::getTarget);
}
@@ -121,7 +115,6 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
*
* @since 1.1
*/
- @SuppressWarnings("unchecked")
public Collection<DbAttribute> getSourceAttributes() {
return mapJoinsToAttributes(DbJoin::getSource);
}
@@ -187,7 +180,7 @@ public class DbRelationship extends Relationship<DbEntity, DbAttribute, DbRelati
return null;
}
- Entity src = this.getSourceEntity();
+ DbEntity src = this.getSourceEntity();
// special case - relationship to self with no joins...
if (target == src && joins.size() == 0) {
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/Entity.java b/cayenne-server/src/main/java/org/apache/cayenne/map/Entity.java
index 1d57c60cb..2b2b14c2a 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/Entity.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/Entity.java
@@ -39,7 +39,7 @@ import java.util.StringTokenizer;
* either a descriptor of database table or a persistent object.
*
*/
-public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>, U extends Relationship<E,T,U>>
+public abstract class Entity<E extends Entity<E, A, R>, A extends Attribute<E, A, R>, R extends Relationship<E, A, R>>
implements CayenneMapEntry, XMLSerializable, Serializable {
public static final String PATH_SEPARATOR = ".";
@@ -55,8 +55,8 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
protected String name;
protected DataMap dataMap;
- protected final Map<String, T> attributes = new LinkedHashMap<>();
- protected final Map<String, U> relationships = new LinkedHashMap<>();
+ protected final Map<String, A> attributes = new LinkedHashMap<>();
+ protected final Map<String, R> relationships = new LinkedHashMap<>();
/**
* Creates an unnamed Entity.
@@ -118,7 +118,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
* Returns attribute with name <code>attributeName</code> or null if no attribute
* with this name exists.
*/
- public T getAttribute(String attributeName) {
+ public A getAttribute(String attributeName) {
return attributes.get(attributeName);
}
@@ -126,7 +126,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
* Adds new attribute to the entity, setting its parent entity to be this object. If
* attribute has no name, IllegalArgumentException is thrown.
*/
- public void addAttribute(T attribute) {
+ public void addAttribute(A attribute) {
if (attribute.getName() == null) {
throw new IllegalArgumentException("Attempt to insert unnamed attribute.");
}
@@ -134,7 +134,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
// block overrides
// TODO: change method signature to return replaced attribute and make sure the Modeler handles it...
- T existingAttribute = attributes.get(attribute.getName());
+ A existingAttribute = attributes.get(attribute.getName());
if (existingAttribute != null) {
if (existingAttribute == attribute) {
return;
@@ -166,7 +166,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
*
* @since 4.0
*/
- public void updateAttribute(T attribute) {
+ public void updateAttribute(A attribute) {
removeAttribute(attribute.getName());
addAttribute(attribute);
}
@@ -179,14 +179,14 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
* Returns relationship with name <code>relName</code>. Will return null if no
* relationship with this name exists in the entity.
*/
- public U getRelationship(String relName) {
+ public R getRelationship(String relName) {
return relationships.get(relName);
}
/**
* Adds new relationship to the entity.
*/
- public void addRelationship(U relationship) {
+ public void addRelationship(R relationship) {
if (relationship.getName() == null) {
throw new IllegalArgumentException("Attempt to insert unnamed relationship.");
}
@@ -214,7 +214,9 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
}
relationships.put(relationship.getName(), relationship);
- relationship.setSourceEntity(this);
+ @SuppressWarnings("unchecked")
+ E sourceEntity = (E) this;
+ relationship.setSourceEntity(sourceEntity);
}
/**
@@ -231,7 +233,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
/**
* Returns an unmodifiable map of relationships sorted by name.
*/
- public Map<String, U> getRelationshipMap() {
+ public Map<String, R> getRelationshipMap() {
// create a new instance ... earlier attempts to cache it in the entity caused
// serialization issues (esp. with Hessian).
return Collections.unmodifiableMap(relationships);
@@ -244,12 +246,12 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
*
* @since 1.1
*/
- public U getAnyRelationship(E targetEntity) {
+ public R getAnyRelationship(E targetEntity) {
if (getRelationships().isEmpty()) {
return null;
}
- for (U r : getRelationships()) {
+ for (R r : getRelationships()) {
if (r.getTargetEntity() == targetEntity) {
return r;
}
@@ -260,7 +262,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
/**
* Returns an unmodifiable collection of Relationships that exist in this entity.
*/
- public Collection<U> getRelationships() {
+ public Collection<R> getRelationships() {
// create a new instance ... earlier attempts to cache it in the entity caused
// serialization issues (esp. with Hessian).
return Collections.unmodifiableCollection(relationships.values());
@@ -269,7 +271,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
/**
* Returns an unmodifiable sorted map of entity attributes.
*/
- public Map<String, T> getAttributeMap() {
+ public Map<String, A> getAttributeMap() {
// create a new instance ... earlier attempts to cache it in the entity caused
// serialization issues (esp. with Hessian).
return Collections.unmodifiableMap(attributes);
@@ -278,7 +280,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
/**
* Returns an unmodifiable collection of entity attributes.
*/
- public Collection<T> getAttributes() {
+ public Collection<A> getAttributes() {
// create a new instance ... earlier attempts to cache it in the entity caused
// serialization issues (esp. with Hessian).
return Collections.unmodifiableCollection(attributes.values());
@@ -298,11 +300,11 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
*
* @since 3.0
*/
- public PathComponent<T, U> lastPathComponent(
+ public PathComponent<A, R> lastPathComponent(
Expression path,
Map<String, String> aliasMap) {
- for (PathComponent<T, U> component : resolvePath(path, aliasMap)) {
+ for (PathComponent<A, R> component : resolvePath(path, aliasMap)) {
if (component.isLast()) {
// resolve aliases if needed
return lastPathComponent(component);
@@ -312,13 +314,13 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
return null;
}
- private PathComponent<T, U> lastPathComponent(PathComponent<T, U> component) {
+ private PathComponent<A, R> lastPathComponent(PathComponent<A, R> component) {
if (!component.isAlias()) {
return component;
}
- for (PathComponent<T, U> subcomponent : component.getAliasedPath()) {
+ for (PathComponent<A, R> subcomponent : component.getAliasedPath()) {
if (subcomponent.isLast()) {
return lastPathComponent(subcomponent);
}
@@ -340,7 +342,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
*
* @since 3.0
*/
- public abstract Iterable<PathComponent<T, U>> resolvePath(
+ public abstract Iterable<PathComponent<A, R>> resolvePath(
Expression pathExp,
Map<String, String> aliasMap);
@@ -371,7 +373,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
private final StringTokenizer tokens;
private final String path;
- private Entity<E,T,U> currentEntity;
+ private Entity<E, A, R> currentEntity;
PathIterator(String path) {
currentEntity = Entity.this;
@@ -390,7 +392,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
}
// see if this is an attribute
- T attr = currentEntity.getAttribute(pathComp);
+ A attr = currentEntity.getAttribute(pathComp);
if (attr != null) {
// do a sanity check...
if (tokens.hasMoreTokens()) {
@@ -400,7 +402,7 @@ public abstract class Entity<E extends Entity<E,T,U>, T extends Attribute<E,T,U>
return attr;
}
- U rel = currentEntity.getRelationship(pathComp);
+ R rel = currentEntity.getRelationship(pathComp);
if (rel != null) {
currentEntity = rel.getTargetEntity();
if (currentEntity != null || !tokens.hasMoreTokens()) { //otherwise an exception will be thrown
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
index 55f98e110..8c9745105 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/EntityResolver.java
@@ -147,7 +147,7 @@ public class EntityResolver implements MappingNamespace, Serializable {
if (relationship.getReverseRelationship() == null) {
DbRelationship reverse = relationship.createReverseRelationship();
- Entity targetEntity = reverse.getSourceEntity();
+ DbEntity targetEntity = reverse.getSourceEntity();
reverse.setName(getUniqueRelationshipName(targetEntity));
reverse.setRuntime(true);
targetEntity.addRelationship(reverse);
@@ -161,7 +161,7 @@ public class EntityResolver implements MappingNamespace, Serializable {
}
- private String getUniqueRelationshipName(Entity entity) {
+ private String getUniqueRelationshipName(DbEntity entity) {
String name;
do {
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponent.java b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponent.java
index e9ee5d081..07472525e 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponent.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponent.java
@@ -23,11 +23,11 @@ package org.apache.cayenne.map;
*
* @since 3.0
*/
-public interface PathComponent<T extends Attribute, U extends Relationship> {
+public interface PathComponent<A extends Attribute, R extends Relationship> {
- T getAttribute();
+ A getAttribute();
- U getRelationship();
+ R getRelationship();
String getName();
@@ -49,5 +49,5 @@ public interface PathComponent<T extends Attribute, U extends Relationship> {
/**
* Returns an aliased path or null if this component is not an alias.
*/
- Iterable<PathComponent<T, U>> getAliasedPath();
+ Iterable<PathComponent<A, R>> getAliasedPath();
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
index 9a444b094..15640b629 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/PathComponentIterator.java
@@ -31,17 +31,17 @@ import java.util.StringTokenizer;
/**
* @since 3.0
*/
-class PathComponentIterator<E extends Entity<E,T,U>, T extends Attribute<E,T,U>, U extends Relationship<E,T,U>>
- implements Iterator<PathComponent<T, U>> {
+class PathComponentIterator<E extends Entity<E, A, R>, A extends Attribute<E, A, R>, R extends Relationship<E, A, R>>
+ implements Iterator<PathComponent<A, R>> {
private final StringTokenizer toks;
private final String path;
private final Map<String, String> aliasMap;
private EmbeddedAttribute embeddedAttribute;
- private Entity<E,T,U> currentEntity;
+ private Entity<E, A, R> currentEntity;
- PathComponentIterator(Entity<E,T,U> root, String path, Map<String, String> aliasMap) {
+ PathComponentIterator(Entity<E, A, R> root, String path, Map<String, String> aliasMap) {
this.currentEntity = Objects.requireNonNull(root);
this.path = Objects.requireNonNull(path);
this.aliasMap = Objects.requireNonNull(aliasMap);
@@ -53,7 +53,7 @@ class PathComponentIterator<E extends Entity<E,T,U>, T extends Attribute<E,T,U>,
return toks.hasMoreTokens();
}
- public PathComponent<T, U> next() {
+ public PathComponent<A, R> next() {
String pathComp = toks.nextToken();
JoinType relationshipJoinType = JoinType.INNER;
@@ -65,10 +65,10 @@ class PathComponentIterator<E extends Entity<E,T,U>, T extends Attribute<E,T,U>,
}
// see if this is an attribute
- T attr;
+ A attr;
if(embeddedAttribute != null) {
// TODO: assert that this iterator is for ObjEntity
- attr = (T)embeddedAttribute.getAttribute(pathComp);
+ attr = (A)embeddedAttribute.getAttribute(pathComp);
embeddedAttribute = null;
} else {
attr = currentEntity.getAttribute(pathComp);
@@ -86,13 +86,13 @@ class PathComponentIterator<E extends Entity<E,T,U>, T extends Attribute<E,T,U>,
return new AttributePathComponent<>(attr);
}
- U rel = currentEntity.getRelationship(pathComp);
+ R rel = currentEntity.getRelationship(pathComp);
if (rel != null) {
currentEntity = rel.getTargetEntity();
return new RelationshipPathComponent<>(rel, relationshipJoinType, !hasNext());
}
- PathComponent<T, U> aliasedPathComponent = getAliasedPathComponent(pathComp);
+ PathComponent<A, R> aliasedPathComponent = getAliasedPathComponent(pathComp);
if (aliasedPathComponent != null) {
return aliasedPathComponent;
}
@@ -100,7 +100,7 @@ class PathComponentIterator<E extends Entity<E,T,U>, T extends Attribute<E,T,U>,
throw invalidPathException("Can't resolve path component", pathComp);
}
- private PathComponent<T, U> getAliasedPathComponent(String pathComp) {
+ private PathComponent<A, R> getAliasedPathComponent(String pathComp) {
String aliasedPath = aliasMap.get(pathComp);
if(aliasedPath == null) {
return null;
@@ -117,15 +117,15 @@ class PathComponentIterator<E extends Entity<E,T,U>, T extends Attribute<E,T,U>,
// the subpath, we have to fully traverse it, hence instead of lazy iterator
// we might as well reuse obtained information in the AliasPathComponent
- Iterator<PathComponent<T, U>> subpathIt =
+ Iterator<PathComponent<A, R>> subpathIt =
new PathComponentIterator<>(currentEntity, aliasedPath, Collections.emptyMap());
- Collection<PathComponent<T, U>> parsedSubpath = new ArrayList<>(4);
+ Collection<PathComponent<A, R>> parsedSubpath = new ArrayList<>(4);
while (subpathIt.hasNext()) {
- PathComponent<T, U> subpathComponent = subpathIt.next();
+ PathComponent<A, R> subpathComponent = subpathIt.next();
- U subpathRelationship = subpathComponent.getRelationship();
+ R subpathRelationship = subpathComponent.getRelationship();
if (subpathRelationship == null) {
throw invalidPathException(
"Expected a relationship in the aliased subpath. Alias [" + pathComp + "]",
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/Relationship.java b/cayenne-server/src/main/java/org/apache/cayenne/map/Relationship.java
index 428cdb285..d705b13b5 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/Relationship.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/Relationship.java
@@ -31,11 +31,11 @@ import org.apache.cayenne.util.XMLSerializable;
* "arcs" connecting entity "nodes". Relationships are directional, i.e. they have a
* notion of source and target entity. This makes DataMap a "digraph".
*/
-public abstract class Relationship<E extends Entity<E,T,U>, T extends Attribute<E,T,U>, U extends Relationship<E,T,U>>
+public abstract class Relationship<E extends Entity<E, A, R>, A extends Attribute<E, A, R>, R extends Relationship<E, A, R>>
implements CayenneMapEntry, XMLSerializable, Serializable {
protected String name;
- protected Entity<E,T,U> sourceEntity;
+ protected E sourceEntity;
protected String targetEntityName;
protected boolean toMany;
@@ -72,26 +72,26 @@ public abstract class Relationship<E extends Entity<E,T,U>, T extends Attribute<
/**
* Returns relationship source entity.
*/
- public Entity<E,T,U> getSourceEntity() {
+ public E getSourceEntity() {
return sourceEntity;
}
/**
* Sets relationship source entity.
*/
- public void setSourceEntity(Entity<E,T,U> sourceEntity) {
+ public void setSourceEntity(E sourceEntity) {
this.sourceEntity = sourceEntity;
}
/**
* Returns a target entity of the relationship.
*/
- public abstract Entity<E,T,U> getTargetEntity();
+ public abstract E getTargetEntity();
/**
* Sets relationship target entity. Internally calls <code>setTargetEntityName</code>.
*/
- public void setTargetEntityName(Entity<E,?,?> targetEntity) {
+ public void setTargetEntityName(Entity<E, A, R> targetEntity) {
if (targetEntity != null) {
setTargetEntityName(targetEntity.getName());
} else {
@@ -128,12 +128,13 @@ public abstract class Relationship<E extends Entity<E,T,U>, T extends Attribute<
return getSourceEntity();
}
+ @SuppressWarnings("unchecked")
public void setParent(Object parent) {
if (parent != null && !(parent instanceof Entity)) {
throw new IllegalArgumentException("Expected null or Entity, got: " + parent);
}
- setSourceEntity((Entity<E,T,U>) parent);
+ setSourceEntity((E) parent);
}
/**
@@ -142,7 +143,7 @@ public abstract class Relationship<E extends Entity<E,T,U>, T extends Attribute<
* Relationship class.
*/
final MappingNamespace getNonNullNamespace() {
- Entity<E,?,?> entity = getSourceEntity();
+ E entity = getSourceEntity();
if (entity == null) {
throw new CayenneRuntimeException("Relationship '%s' has no parent Entity.", getName());
@@ -180,7 +181,7 @@ public abstract class Relationship<E extends Entity<E,T,U>, T extends Attribute<
* null if no such relationship is found.
* @since 3.1
*/
- public abstract Relationship<E,T,U> getReverseRelationship();
+ public abstract Relationship<E, A, R> getReverseRelationship();
/**
* Returns if relationship is mandatory
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/RelationshipPathComponent.java b/cayenne-server/src/main/java/org/apache/cayenne/map/RelationshipPathComponent.java
index 6b89eb1fe..ce0694356 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/RelationshipPathComponent.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/RelationshipPathComponent.java
@@ -21,24 +21,24 @@ package org.apache.cayenne.map;
/**
* @since 3.0
*/
-class RelationshipPathComponent<T extends Attribute, U extends Relationship> implements
- PathComponent<T, U> {
+class RelationshipPathComponent<A extends Attribute<?, A, R>, R extends Relationship<?, A, R>>
+ implements PathComponent<A, R> {
- private U relationship;
- private JoinType joinType;
- private boolean last;
+ private final R relationship;
+ private final JoinType joinType;
+ private final boolean last;
- RelationshipPathComponent(U relationship, JoinType joinType, boolean last) {
+ RelationshipPathComponent(R relationship, JoinType joinType, boolean last) {
this.relationship = relationship;
this.joinType = joinType;
this.last = last;
}
- public T getAttribute() {
+ public A getAttribute() {
return null;
}
- public U getRelationship() {
+ public R getRelationship() {
return relationship;
}
@@ -58,7 +58,7 @@ class RelationshipPathComponent<T extends Attribute, U extends Relationship> imp
return false;
}
- public Iterable<PathComponent<T, U>> getAliasedPath() {
+ public Iterable<PathComponent<A, R>> getAliasedPath() {
return null;
}
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/event/AttributeEvent.java b/cayenne-server/src/main/java/org/apache/cayenne/map/event/AttributeEvent.java
index 033c84acb..fcfca2854 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/event/AttributeEvent.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/event/AttributeEvent.java
@@ -29,29 +29,29 @@ import org.apache.cayenne.map.Entity;
*
*/
public class AttributeEvent extends EntityEvent {
- protected Attribute attribute;
+ protected Attribute<?,?,?> attribute;
/** Creates a Attribute change event. */
- public AttributeEvent(Object src, Attribute attr, Entity entity) {
+ public AttributeEvent(Object src, Attribute<?,?,?> attr, Entity<?,?,?> entity) {
super(src, entity);
setAttribute(attr);
}
/** Creates a Attribute event of a specified type. */
- public AttributeEvent(Object src, Attribute attr, Entity entity, int id) {
+ public AttributeEvent(Object src, Attribute<?,?,?> attr, Entity<?,?,?> entity, int id) {
this(src, attr, entity);
setId(id);
}
/** Creates a Attribute name change event.*/
- public AttributeEvent(Object src, Attribute attr, Entity entity, String oldName) {
+ public AttributeEvent(Object src, Attribute<?,?,?> attr, Entity<?,?,?> entity, String oldName) {
this(src, attr, entity);
setOldName(oldName);
}
/** Get attribute (obj or db). */
- public Attribute getAttribute() {
+ public Attribute<?,?,?> getAttribute() {
return attribute;
}
@@ -59,7 +59,7 @@ public class AttributeEvent extends EntityEvent {
* Sets the attribute.
* @param attribute The attribute to set
*/
- public void setAttribute(Attribute attribute) {
+ public void setAttribute(Attribute<?,?,?> attribute) {
this.attribute = attribute;
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/event/EntityEvent.java b/cayenne-server/src/main/java/org/apache/cayenne/map/event/EntityEvent.java
index c2e60e121..1e80ec2af 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/event/EntityEvent.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/event/EntityEvent.java
@@ -27,28 +27,28 @@ import org.apache.cayenne.map.Entity;
* and DbEntities.
*/
public class EntityEvent extends MapEvent {
- protected Entity entity;
+ protected Entity<?,?,?> entity;
/** Creates a Entity change event. */
- public EntityEvent(Object src, Entity entity) {
+ public EntityEvent(Object src, Entity<?,?,?> entity) {
super(src);
setEntity(entity);
}
/** Creates a Entity event of a specified type. */
- public EntityEvent(Object src, Entity entity, int id) {
+ public EntityEvent(Object src, Entity<?,?,?> entity, int id) {
this(src, entity);
setId(id);
}
/** Creates a Entity name change event.*/
- public EntityEvent(Object src, Entity entity, String oldName) {
+ public EntityEvent(Object src, Entity<?,?,?> entity, String oldName) {
this(src, entity);
setOldName(oldName);
}
/** Returns entity object associated with this event. */
- public Entity getEntity() {
+ public Entity<?,?,?> getEntity() {
return entity;
}
@@ -57,7 +57,7 @@ public class EntityEvent extends MapEvent {
*
* @param entity The entity to set
*/
- public void setEntity(Entity entity) {
+ public void setEntity(Entity<?,?,?> entity) {
this.entity = entity;
}
diff --git a/cayenne-server/src/main/java/org/apache/cayenne/map/event/RelationshipEvent.java b/cayenne-server/src/main/java/org/apache/cayenne/map/event/RelationshipEvent.java
index 801a8424e..9fd81a7ae 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/map/event/RelationshipEvent.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/map/event/RelationshipEvent.java
@@ -30,10 +30,10 @@ import org.apache.cayenne.map.Relationship;
*
*/
public class RelationshipEvent extends EntityEvent {
- protected Relationship relationship;
+ protected Relationship<?,?,?> relationship;
/** Creates a Relationship change event. */
- public RelationshipEvent(Object src, Relationship rel, Entity entity) {
+ public RelationshipEvent(Object src, Relationship<?,?,?> rel, Entity<?,?,?> entity) {
super(src, entity);
setRelationship(rel);
}
@@ -41,8 +41,8 @@ public class RelationshipEvent extends EntityEvent {
/** Creates a Relationship event of a specified type. */
public RelationshipEvent(
Object src,
- Relationship rel,
- Entity entity,
+ Relationship<?,?,?> rel,
+ Entity<?,?,?> entity,
int id) {
this(src, rel, entity);
@@ -52,8 +52,8 @@ public class RelationshipEvent extends EntityEvent {
/** Creates a Relationship name change event. */
public RelationshipEvent(
Object src,
- Relationship rel,
- Entity entity,
+ Relationship<?,?,?> rel,
+ Entity<?,?,?> entity,
String oldName) {
this(src, rel, entity);
@@ -61,7 +61,7 @@ public class RelationshipEvent extends EntityEvent {
}
/** Returns relationship associated with this event. */
- public Relationship getRelationship() {
+ public Relationship<?,?,?> getRelationship() {
return relationship;
}
@@ -70,7 +70,7 @@ public class RelationshipEvent extends EntityEvent {
*
* @param relationship The relationship to set
*/
- public void setRelationship(Relationship relationship) {
+ public void setRelationship(Relationship<?,?,?> relationship) {
this.relationship = relationship;
}
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
index 8093b41ff..c4eabd9f4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/access/DataContextEJBQLDeletePKIT.java
@@ -66,7 +66,8 @@ public class DataContextEJBQLDeletePKIT extends ServerCase {
EJBQLQuery q = new EJBQLQuery("select m.pkAttribute from MeaningfulPKTest1 m");
- List<Integer> id = context.performQuery(q);
+ @SuppressWarnings("unchecked")
+ List<Integer> id = (List<Integer>)context.performQuery(q);
String ejbql = "delete from MeaningfulPKTest1 m WHERE m.pkAttribute in (:id)";
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/MockAttribute.java b/cayenne-server/src/test/java/org/apache/cayenne/map/MockAttribute.java
index 32596e493..e3e4aed42 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/MockAttribute.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/MockAttribute.java
@@ -22,8 +22,6 @@ package org.apache.cayenne.map;
import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
import org.apache.cayenne.util.XMLEncoder;
-/**
- */
public class MockAttribute extends Attribute<MockEntity, MockAttribute, MockRelationship> {
public MockAttribute() {
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/MockObjRelationship.java b/cayenne-server/src/test/java/org/apache/cayenne/map/MockObjRelationship.java
index 8a4e7da54..dccf36ae4 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/MockObjRelationship.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/MockObjRelationship.java
@@ -19,8 +19,6 @@
package org.apache.cayenne.map;
-import org.apache.cayenne.map.ObjRelationship;
-
/**
*/
public class MockObjRelationship extends ObjRelationship {
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/map/MockRelationship.java b/cayenne-server/src/test/java/org/apache/cayenne/map/MockRelationship.java
index 0f06e89ee..770d4fa81 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/map/MockRelationship.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/map/MockRelationship.java
@@ -25,7 +25,6 @@ import org.apache.cayenne.util.XMLEncoder;
public class MockRelationship extends Relationship<MockEntity, MockAttribute, MockRelationship> {
public MockRelationship() {
-
}
public MockRelationship(String name) {
@@ -33,7 +32,7 @@ public class MockRelationship extends Relationship<MockEntity, MockAttribute, Mo
}
@Override
- public Entity getTargetEntity() {
+ public MockEntity getTargetEntity() {
return null;
}
@@ -42,7 +41,7 @@ public class MockRelationship extends Relationship<MockEntity, MockAttribute, Mo
}
@Override
- public Relationship getReverseRelationship() {
+ public MockRelationship getReverseRelationship() {
return null;
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeModel.java
index 1e02b6d1a..3c98ce886 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeModel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeModel.java
@@ -19,6 +19,7 @@
package org.apache.cayenne.modeler;
+import org.apache.cayenne.configuration.ConfigurationNode;
import org.apache.cayenne.configuration.DataNodeDescriptor;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbEntity;
@@ -31,6 +32,7 @@ import org.apache.cayenne.project.Project;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.MutableTreeNode;
+import javax.swing.tree.TreeNode;
import java.util.Comparator;
import java.util.Enumeration;
import java.util.Map;
@@ -40,7 +42,7 @@ import java.util.Map;
*/
public class ProjectTreeModel extends DefaultTreeModel {
- private Filter filter = new Filter();
+ private final Filter filter = new Filter();
/**
* Constructor for ProjectTreeModel.
@@ -53,7 +55,7 @@ public class ProjectTreeModel extends DefaultTreeModel {
* Re-inserts a tree node to preserve the correct ordering of items. Assumes
* that the tree is already ordered, except for one node.
*/
- public void positionNode(MutableTreeNode parent, DefaultMutableTreeNode treeNode, Comparator comparator) {
+ public void positionNode(MutableTreeNode parent, DefaultMutableTreeNode treeNode, Comparator<ConfigurationNode> comparator) {
if (treeNode == null) {
return;
@@ -66,7 +68,7 @@ public class ProjectTreeModel extends DefaultTreeModel {
}
}
- Object object = treeNode.getUserObject();
+ ConfigurationNode object = (ConfigurationNode)treeNode.getUserObject();
if (parent != null) {
int len = parent.getChildCount();
@@ -87,7 +89,7 @@ public class ProjectTreeModel extends DefaultTreeModel {
}
// ObjEntities go before DbEntities
- if (comparator.compare(object, node.getUserObject()) <= 0) {
+ if (comparator.compare(object, (ConfigurationNode)node.getUserObject()) <= 0) {
ins = i;
}
}
@@ -149,7 +151,7 @@ public class ProjectTreeModel extends DefaultTreeModel {
for (int i = start; i < path.length; i++) {
DefaultMutableTreeNode foundNode = null;
- Enumeration children = currentNode.children();
+ Enumeration<TreeNode> children = currentNode.children();
while (children.hasMoreElements()) {
DefaultMutableTreeNode child = (DefaultMutableTreeNode) children.nextElement();
if (child.getUserObject() == path[i]) {
@@ -226,7 +228,7 @@ public class ProjectTreeModel extends DefaultTreeModel {
nodesWereRemoved(parent, childIndex, removedArray);
}
- class Filter {
+ static class Filter {
private Map<String, Boolean> filterMap;
boolean pass = true;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
index d17490a98..35c7c35b2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ProjectTreeView.java
@@ -730,7 +730,7 @@ public class ProjectTreeView extends JTree implements DomainDisplayListener,
*/
protected void entityAdded(EntityEvent e) {
- Entity entity = e.getEntity();
+ Entity<?,?,?> entity = e.getEntity();
DefaultMutableTreeNode mapNode = getProjectModel().getNodeForObjectPath(
new Object[] {
@@ -921,7 +921,7 @@ public class ProjectTreeView extends JTree implements DomainDisplayListener,
(DataNodeDescriptor) obj));
}
} else if (obj instanceof Entity) {
- EntityDisplayEvent e = new EntityDisplayEvent(this, (Entity) obj);
+ EntityDisplayEvent e = new EntityDisplayEvent(this, (Entity<?,?,?>) obj);
e.setUnselectAttributes(true);
if (data.length == 3) {
e.setDataMap((DataMap) data[data.length - 2]);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/BaseViewEntityAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/BaseViewEntityAction.java
index 01e3ec557..6dc8c8f3b 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/BaseViewEntityAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/BaseViewEntityAction.java
@@ -35,7 +35,7 @@ import java.awt.event.ActionEvent;
*/
public abstract class BaseViewEntityAction extends CayenneAction {
- abstract protected Entity getEntity();
+ abstract protected Entity<?,?,?> getEntity();
public BaseViewEntityAction(String name, Application application) {
super(name, application);
@@ -50,13 +50,13 @@ public abstract class BaseViewEntityAction extends CayenneAction {
}
protected void viewEntity() {
- Entity entity = getEntity();
+ Entity<?,?,?> entity = getEntity();
if(entity != null) {
navigateToEntity(entity);
}
}
- public void navigateToEntity(Entity entity) {
+ public void navigateToEntity(Entity<?,?,?> entity) {
TreePath path = buildTreePath(entity);
editor().getProjectTreeView().getSelectionModel().setSelectionPath(path);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateAttributeAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateAttributeAction.java
index d28e6499e..99a3a7575 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateAttributeAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateAttributeAction.java
@@ -182,7 +182,7 @@ public class CreateAttributeAction extends CayenneAction {
}
if (object instanceof Attribute) {
- return ((Attribute) object).getParent() != null && ((Attribute) object).getParent() instanceof Entity;
+ return ((Attribute<?,?,?>) object).getParent() instanceof Entity;
}
return false;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java
index fef26f1c9..6c1979b11 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateDbEntityAction.java
@@ -97,6 +97,6 @@ public class CreateDbEntityAction extends CayenneAction {
return false;
}
- return ((Entity) object).getDataMap() != null;
+ return ((Entity<?,?,?>) object).getDataMap() != null;
}
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateRelationshipAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateRelationshipAction.java
index 8b849779a..2e063f234 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateRelationshipAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/CreateRelationshipAction.java
@@ -134,7 +134,7 @@ public class CreateRelationshipAction extends CayenneAction {
}
if (object instanceof Relationship) {
- return ((Relationship) object).getParent() != null && ((Relationship) object).getParent() instanceof Entity;
+ return ((Relationship<?,?,?>) object).getParent() instanceof Entity;
}
return false;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntityCounterpartAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntityCounterpartAction.java
index 642bade3f..8e9750aab 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntityCounterpartAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/DbEntityCounterpartAction.java
@@ -41,7 +41,7 @@ public class DbEntityCounterpartAction extends BaseViewEntityAction {
}
@Override
- protected Entity getEntity() {
+ protected ObjEntity getEntity() {
DbEntity dbEntity = getProjectController().getCurrentDbEntity();
if (dbEntity == null) {
return null;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/FindAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/FindAction.java
index 1185fc595..cdfa94b94 100755
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/FindAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/FindAction.java
@@ -141,7 +141,7 @@ public class FindAction extends CayenneAction {
DataChannelDescriptor domain = (DataChannelDescriptor) Application.getInstance().getProject().getRootNode();
if (searchResultEntry.getObject() instanceof Entity) {
- jumpToEntityResult((Entity) searchResultEntry.getObject(), editor, domain);
+ jumpToEntityResult((Entity<?,?,?>) searchResultEntry.getObject(), editor, domain);
} else if (searchResultEntry.getObject() instanceof QueryDescriptor) {
jumpToQueryResult((QueryDescriptor)searchResultEntry.getObject(), editor, domain);
} else if (searchResultEntry.getObject() instanceof Embeddable) {
@@ -262,19 +262,19 @@ public class FindAction extends CayenneAction {
private static void jumpToAttributeResult(SearchResultEntry searchResultEntry, EditorView editor, DataChannelDescriptor domain) {
DataMap map;
- Entity entity;
+ Entity<?,?,?> entity;
if (searchResultEntry.getObject() instanceof Attribute) {
- map = ((Attribute) searchResultEntry.getObject()).getEntity().getDataMap();
- entity = ((Attribute) searchResultEntry.getObject()).getEntity();
+ map = ((Attribute<?,?,?>) searchResultEntry.getObject()).getEntity().getDataMap();
+ entity = ((Attribute<?,?,?>) searchResultEntry.getObject()).getEntity();
} else {
- map = ((Relationship) searchResultEntry.getObject()).getSourceEntity().getDataMap();
- entity = ((Relationship) searchResultEntry.getObject()).getSourceEntity();
+ map = ((Relationship<?,?,?>) searchResultEntry.getObject()).getSourceEntity().getDataMap();
+ entity = ((Relationship<?,?,?>) searchResultEntry.getObject()).getSourceEntity();
}
buildAndSelectTreePath(map, entity, editor);
if (searchResultEntry.getObject() instanceof Attribute) {
AttributeDisplayEvent event = new AttributeDisplayEvent(editor.getProjectTreeView(),
- (Attribute) searchResultEntry.getObject(), entity, map, domain);
+ (Attribute<?,?,?>) searchResultEntry.getObject(), entity, map, domain);
event.setMainTabFocus(true);
if(searchResultEntry.getObject() instanceof DbAttribute) {
editor.getDbDetailView().currentDbAttributeChanged(event);
@@ -285,7 +285,7 @@ public class FindAction extends CayenneAction {
}
} else if (searchResultEntry.getObject() instanceof Relationship) {
RelationshipDisplayEvent event = new RelationshipDisplayEvent(editor.getProjectTreeView(),
- (Relationship) searchResultEntry.getObject(), entity, map, domain);
+ (Relationship<?,?,?>) searchResultEntry.getObject(), entity, map, domain);
event.setMainTabFocus(true);
if(searchResultEntry.getObject() instanceof DbRelationship) {
editor.getDbDetailView().currentDbRelationshipChanged(event);
@@ -323,7 +323,7 @@ public class FindAction extends CayenneAction {
editor.currentQueryChanged(event);
}
- private static void jumpToEntityResult(Entity entity, EditorView editor, DataChannelDescriptor domain) {
+ private static void jumpToEntityResult(Entity<?,?,?> entity, EditorView editor, DataChannelDescriptor domain) {
DataMap map = entity.getDataMap();
buildAndSelectTreePath(map, entity, editor);
EntityDisplayEvent event = new EntityDisplayEvent(editor.getProjectTreeView(), entity, map, domain);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityCounterpartAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityCounterpartAction.java
index 903166c11..a77d67499 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityCounterpartAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityCounterpartAction.java
@@ -19,7 +19,7 @@
package org.apache.cayenne.modeler.action;
-import org.apache.cayenne.map.Entity;
+import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.modeler.Application;
@@ -38,7 +38,7 @@ public class ObjEntityCounterpartAction extends BaseViewEntityAction {
}
@Override
- protected Entity getEntity() {
+ protected DbEntity getEntity() {
ObjEntity objEntity = getProjectController().getCurrentObjEntity();
if (objEntity == null) {
return null;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityToSuperEntityAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityToSuperEntityAction.java
index 2f363d375..72bd216d5 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityToSuperEntityAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ObjEntityToSuperEntityAction.java
@@ -19,7 +19,6 @@
package org.apache.cayenne.modeler.action;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.modeler.Application;
@@ -37,7 +36,7 @@ public class ObjEntityToSuperEntityAction extends BaseViewEntityAction {
}
@Override
- protected Entity getEntity() {
+ protected ObjEntity getEntity() {
ObjEntity objEntity = getProjectController().getCurrentObjEntity();
if (objEntity == null) {
return null;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java
index 66f2518c3..98dd22882 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/RemoveAttributeAction.java
@@ -72,7 +72,7 @@ public class RemoveAttributeAction extends RemoveAction implements MultipleObjec
*/
@Override
public boolean enableForPath(ConfigurationNode object) {
- return object != null && object instanceof Attribute;
+ return object instanceof Attribute;
}
@Override
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
index 9ebd7d923..9d292227a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsController.java
@@ -24,9 +24,9 @@ import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.map.event.RelationshipEvent;
import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
@@ -139,20 +139,15 @@ public class InferRelationshipsController extends InferRelationshipsControllerBa
this.strategy = createNamingStrategy(strategyClass);
- /**
+ /*
* Be user-friendly and update preferences with specified strategy
*/
if (strategy == null) {
return;
}
- NameGeneratorPreferences
- .getInstance()
- .addToLastUsedStrategies(strategyClass);
+ NameGeneratorPreferences.getInstance().addToLastUsedStrategies(strategyClass);
view.getStrategyCombo().setModel(
- new DefaultComboBoxModel(NameGeneratorPreferences
- .getInstance()
- .getLastUsedStrategies()));
-
+ new DefaultComboBoxModel<>(NameGeneratorPreferences.getInstance().getLastUsedStrategies()));
}
catch (Throwable th) {
logObj.error("Error in " + getClass().getName(), th);
@@ -176,10 +171,7 @@ public class InferRelationshipsController extends InferRelationshipsControllerBa
public void generateAction() {
- ProjectController mediator = application
- .getFrameController()
- .getProjectController();
-
+ ProjectController mediator = application.getFrameController().getProjectController();
InferRelationshipsUndoableEdit undoableEdit = new InferRelationshipsUndoableEdit();
for (InferredRelationship temp : selectedEntities) {
@@ -206,7 +198,7 @@ public class InferRelationshipsController extends InferRelationshipsControllerBa
view.dispose();
}
- private String uniqueRelName(Entity entity, String preferredName) {
+ private String uniqueRelName(DbEntity entity, String preferredName) {
int currentSuffix = 1;
String relName = preferredName;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsDialog.java
index c695b747a..87fd2c86e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/autorelationship/InferRelationshipsDialog.java
@@ -43,7 +43,7 @@ public class InferRelationshipsDialog extends JDialog {
protected JLabel entityCount;
protected JLabel strategyLabel;
- protected JComboBox strategyCombo;
+ protected JComboBox<String> strategyCombo;
public InferRelationshipsDialog(Component entitySelectorPanel) {
super(Application.getFrame());
@@ -54,7 +54,7 @@ public class InferRelationshipsDialog extends JDialog {
getRootPane().setDefaultButton(generateButton);
- this.strategyCombo = new JComboBox();
+ this.strategyCombo = new JComboBox<>();
strategyCombo.setEditable(true);
this.strategyLabel = new JLabel("Naming Strategy: ");
@@ -106,7 +106,7 @@ public class InferRelationshipsDialog extends JDialog {
return entityCount;
}
- public JComboBox getStrategyCombo() {
+ public JComboBox<String> getStrategyCombo() {
return strategyCombo;
}
}
\ No newline at end of file
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjAttributeInfoDialog.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjAttributeInfoDialog.java
index 6ff536620..35761a252 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjAttributeInfoDialog.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjAttributeInfoDialog.java
@@ -25,7 +25,6 @@ import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.Embeddable;
import org.apache.cayenne.map.EmbeddableAttribute;
import org.apache.cayenne.map.EmbeddedAttribute;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.event.AttributeEvent;
@@ -70,9 +69,9 @@ import static org.apache.cayenne.modeler.dialog.objentity.ObjAttributeInfoDialog
public class ObjAttributeInfoDialog extends CayenneController implements TreeSelectionListener {
- private ObjAttributeTableModel model;
+ private final ObjAttributeTableModel model;
private OverrideEmbeddableAttributeTableModel embeddableModel;
- private int row;
+ private final int row;
protected ObjAttributeInfoDialogView view;
protected ObjAttribute attribute;
protected ObjAttribute attributeSaved;
@@ -189,7 +188,7 @@ public class ObjAttributeInfoDialog extends CayenneController implements TreeSel
* set filter for ObjAttributePathBrowser
*/
if (view.getPathBrowser().getModel() == null) {
- Entity firstEntity = null;
+ DbEntity firstEntity = null;
if (attribute.getDbAttribute() == null) {
if (attribute.getParent() instanceof ObjEntity) {
@@ -226,13 +225,10 @@ public class ObjAttributeInfoDialog extends CayenneController implements TreeSel
view.getTypeComboBox().addItemListener(e -> {
if (lastObjectType != null) {
if (!lastObjectType.equals(e.getItemSelectable())) {
-
if (embeddableNames.contains(e.getItemSelectable().getSelectedObjects()[0].toString())) {
- if (attributeSaved instanceof ObjAttribute) {
- EmbeddedAttribute copyAttrSaved = new EmbeddedAttribute();
- copyObjAttribute(copyAttrSaved, attributeSaved);
- attributeSaved = copyAttrSaved;
- }
+ EmbeddedAttribute copyAttrSaved = new EmbeddedAttribute();
+ copyObjAttribute(copyAttrSaved, attributeSaved);
+ attributeSaved = copyAttrSaved;
} else {
if (attributeSaved instanceof EmbeddedAttribute) {
ObjAttribute copyAttrSaved = new ObjAttribute();
@@ -314,12 +310,10 @@ public class ObjAttributeInfoDialog extends CayenneController implements TreeSel
}
private void initComboBoxes() {
- Collection<String> nameAttr = null;
if (attributeSaved != null) {
DbEntity currentEnt = attributeSaved.getEntity().getDbEntity();
-
if (currentEnt != null) {
- nameAttr = ModelerUtil.getDbAttributeNames(currentEnt);
+ Collection<String> nameAttr = ModelerUtil.getDbAttributeNames(currentEnt);
embeddableModel.setCellEditor(nameAttr, view.getOverrideAttributeTable());
embeddableModel.setComboBoxes(
nameAttr,
@@ -565,9 +559,9 @@ public class ObjAttributeInfoDialog extends CayenneController implements TreeSel
public void valueChanged(TreeSelectionEvent e) {
}
- private Entity getFirstEntity() {
+ private DbEntity getFirstEntity() {
Iterator<CayenneMapEntry> it = attribute.getDbPathIterator();
- Entity firstEnt = attribute.getDbAttribute().getEntity();
+ DbEntity firstEnt = attribute.getDbAttribute().getEntity();
boolean setEnt = false;
while (it.hasNext()) {
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
index 3b394896b..da745e453 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfo.java
@@ -38,11 +38,9 @@ import org.apache.cayenne.dbsync.naming.ObjectNameGenerator;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.DeleteRule;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.map.event.MapEvent;
import org.apache.cayenne.map.event.RelationshipEvent;
import org.apache.cayenne.modeler.Application;
@@ -442,7 +440,6 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
/**
* Places in objectTargets list all ObjEntities for specified DbEntity
*/
- @SuppressWarnings("unchecked")
protected void updateTargetCombo(DbEntity dbTarget) {
// copy those that have DbEntities mapped to dbTarget, and then sort
@@ -642,22 +639,22 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
// Connects last selected DbRelationship in the path to the
// last DbEntity, creating a dummy relationship if needed.
private void connectEnds() {
- Relationship last = null;
+ DbRelationship last = null;
int size = dbRelationships.size();
if (size > 0) {
last = dbRelationships.get(size - 1);
}
- Entity target = getEndEntity();
+ DbEntity target = getEndEntity();
if (target != null && (last == null || last.getTargetEntity() != target)) {
// try to connect automatically, if we can't use dummy connector
- Entity source = (last == null) ? getStartEntity() : last.getTargetEntity();
+ DbEntity source = (last == null) ? getStartEntity() : last.getTargetEntity();
if (source != null) {
- Relationship anyConnector = source.getAnyRelationship(target);
+ DbRelationship anyConnector = source.getAnyRelationship(target);
if (anyConnector != null) {
- dbRelationships.add((DbRelationship) anyConnector);
+ dbRelationships.add(anyConnector);
}
}
}
@@ -715,7 +712,7 @@ public class ObjRelationshipInfo extends CayenneController implements TreeSelect
this.targetCollection = targetCollection;
}
- public List getMapKeys() {
+ public List<String> getMapKeys() {
return mapKeys;
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfoView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfoView.java
index c3ad2a21c..488d48dbc 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfoView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/objentity/ObjRelationshipInfoView.java
@@ -45,7 +45,7 @@ public class ObjRelationshipInfoView extends JDialog{
private static final Dimension BROWSER_CELL_DIM = new Dimension(130, 200);
- private static final Object[] DELETE_RULES = new Object[]{
+ private static final String[] DELETE_RULES = new String[]{
DeleteRule.deleteRuleName(DeleteRule.NO_ACTION),
DeleteRule.deleteRuleName(DeleteRule.NULLIFY),
DeleteRule.deleteRuleName(DeleteRule.CASCADE),
@@ -68,7 +68,7 @@ public class ObjRelationshipInfoView extends JDialog{
private JLabel sourceEntityLabel;
private JComboBox<String> targetCombo;
- private JComboBox deleteRule;
+ private JComboBox<String> deleteRule;
private JCheckBox usedForLocking;
private JTextField comment;
@@ -101,9 +101,7 @@ public class ObjRelationshipInfoView extends JDialog{
pathBrowser.setPreferredColumnSize(BROWSER_CELL_DIM);
pathBrowser.setDefaultRenderer();
- this.deleteRule = Application.getWidgetFactory().createComboBox(
- DELETE_RULES,
- false);
+ this.deleteRule = Application.getWidgetFactory().createComboBox(DELETE_RULES, false);
this.usedForLocking = new JCheckBox();
this.comment = new JTextField();
@@ -190,7 +188,7 @@ public class ObjRelationshipInfoView extends JDialog{
return sourceEntityLabel;
}
- public JComboBox getTargetCombo()
+ public JComboBox<String> getTargetCombo()
{
return targetCombo;
}
@@ -203,7 +201,7 @@ public class ObjRelationshipInfoView extends JDialog{
return mapKeysCombo;
}
- public JComboBox getDeleteRule() {
+ public JComboBox<String> getDeleteRule() {
return deleteRule;
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/AttributeErrorMsg.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/AttributeErrorMsg.java
index 1cc5ded37..444090a80 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/AttributeErrorMsg.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/AttributeErrorMsg.java
@@ -39,42 +39,31 @@ import org.apache.cayenne.validation.ValidationFailure;
public class AttributeErrorMsg extends ValidationDisplayHandler {
protected DataMap map;
- protected Entity entity;
- protected Attribute attribute;
+ protected Entity<?,?,?> entity;
+ protected Attribute<?,?,?> attribute;
/**
* Constructor for AttributeErrorMsg.
- *
- * @param result
*/
public AttributeErrorMsg(ValidationFailure result) {
super(result);
Object object = result.getSource();
- attribute = (Attribute) object;
+ attribute = (Attribute<?,?,?>) object;
entity = attribute.getEntity();
map = entity.getDataMap();
- domain = (DataChannelDescriptor) Application
- .getInstance()
- .getProject()
- .getRootNode();
+ domain = (DataChannelDescriptor) Application.getInstance().getProject().getRootNode();
}
public void displayField(ProjectController mediator, JFrame frame) {
- AttributeDisplayEvent event = new AttributeDisplayEvent(
- frame,
- attribute,
- entity,
- map,
- domain);
+ AttributeDisplayEvent event = new AttributeDisplayEvent(frame, attribute, entity, map, domain);
- // must first display entity, and then switch to relationship display .. so fire
- // twice
+ // must first display entity, and then switch to relationship display ..
+ // so fire twice
if (entity instanceof ObjEntity) {
mediator.fireObjEntityDisplayEvent(event);
mediator.fireObjAttributeDisplayEvent(event);
- }
- else if (entity instanceof DbEntity) {
+ } else if (entity instanceof DbEntity) {
mediator.fireDbEntityDisplayEvent(event);
mediator.fireDbAttributeDisplayEvent(event);
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/EntityErrorMsg.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/EntityErrorMsg.java
index b513cfe22..826a76325 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/EntityErrorMsg.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/EntityErrorMsg.java
@@ -38,18 +38,16 @@ import org.apache.cayenne.validation.ValidationFailure;
public class EntityErrorMsg extends ValidationDisplayHandler {
protected DataMap map;
- protected Entity entity;
+ protected Entity<?,?,?> entity;
/**
* Constructor for EntityErrorMsg.
- *
- * @param result
*/
public EntityErrorMsg(ValidationFailure result) {
super(result);
Object object = result.getSource();
- entity = (Entity) object;
+ entity = (Entity<?,?,?>) object;
map = entity.getDataMap();
domain = (DataChannelDescriptor) Application
.getInstance()
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/RelationshipErrorMsg.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/RelationshipErrorMsg.java
index 8b6d06a90..b98f6c53e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/RelationshipErrorMsg.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/validator/RelationshipErrorMsg.java
@@ -39,18 +39,16 @@ import org.apache.cayenne.validation.ValidationFailure;
public class RelationshipErrorMsg extends ValidationDisplayHandler {
protected DataMap map;
- protected Entity entity;
- protected Relationship rel;
+ protected Entity<?,?,?> entity;
+ protected Relationship<?,?,?> rel;
/**
* Constructor for RelationshipErrorMsg.
- *
- * @param result
*/
public RelationshipErrorMsg(ValidationFailure result) {
super(result);
Object object = result.getSource();
- rel = (Relationship) object;
+ rel = (Relationship<?,?,?>) object;
entity = rel.getSourceEntity();
map = entity.getDataMap();
domain = (DataChannelDescriptor) Application
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java
index e2d8da16a..1e952a46c 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/CallbackDescriptorTableModel.java
@@ -67,7 +67,7 @@ public class CallbackDescriptorTableModel extends CayenneTableModel<String> {
/**
* Returns Java class of the internal list elements.
*/
- public Class getElementsClass() {
+ public Class<String> getElementsClass() {
return String.class;
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java
index 03259474b..a98783c88 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjEntityTabbedView.java
@@ -120,7 +120,7 @@ public class ObjEntityTabbedView extends JTabbedPane implements ObjEntityDisplay
}
public void currentObjEntityChanged(EntityDisplayEvent e) {
- Entity entity = e.getEntity();
+ Entity<?,?,?> entity = e.getEntity();
if (e.isMainTabFocus() && entity instanceof ObjEntity) {
if (getSelectedComponent() != entityPanel) {
@@ -145,7 +145,7 @@ public class ObjEntityTabbedView extends JTabbedPane implements ObjEntityDisplay
}
// update relationship selection
- Relationship[] rels = e.getRelationships();
+ Relationship<?,?,?>[] rels = e.getRelationships();
ObjRelationship[] objRels = new ObjRelationship[rels.length];
System.arraycopy(rels, 0, objRels, 0, rels.length);
@@ -164,7 +164,7 @@ public class ObjEntityTabbedView extends JTabbedPane implements ObjEntityDisplay
return;
// update attribute selection
- Attribute[] attrs = e.getAttributes();
+ Attribute<?,?,?>[] attrs = e.getAttributes();
ObjAttribute[] objAttrs = new ObjAttribute[attrs.length];
System.arraycopy(attrs, 0, objAttrs, 0, attrs.length);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjRelationshipTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjRelationshipTableModel.java
index 1f9631796..a6c3c6436 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjRelationshipTableModel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/ObjRelationshipTableModel.java
@@ -19,7 +19,11 @@
package org.apache.cayenne.modeler.editor;
-import org.apache.cayenne.map.*;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
+import org.apache.cayenne.map.DeleteRule;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.map.event.RelationshipEvent;
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.util.CayenneTableModel;
@@ -47,7 +51,7 @@ public class ObjRelationshipTableModel extends CayenneTableModel<ObjRelationship
public static final int REL_COMMENT = 6;
public static final int COLUMN_COUNT = 7;
- private ObjEntity entity;
+ private final ObjEntity entity;
public ObjRelationshipTableModel(ObjEntity entity, ProjectController mediator, Object eventSource) {
super(mediator, eventSource, new ArrayList<>(entity.getRelationships()));
@@ -65,7 +69,7 @@ public class ObjRelationshipTableModel extends CayenneTableModel<ObjRelationship
* Returns ObjRelationship class.
*/
@Override
- public Class getElementsClass() {
+ public Class<ObjRelationship> getElementsClass() {
return ObjRelationship.class;
}
@@ -96,7 +100,7 @@ public class ObjRelationshipTableModel extends CayenneTableModel<ObjRelationship
}
@Override
- public Class getColumnClass(int col) {
+ public Class<?> getColumnClass(int col) {
switch (col) {
case REL_TARGET:
return ObjEntity.class;
@@ -176,13 +180,12 @@ public class ObjRelationshipTableModel extends CayenneTableModel<ObjRelationship
// now try to connect DbEntities if we can do it in one step
if (target != null) {
- DbEntity srcDB = relationship.getSourceEntity()
- .getDbEntity();
+ DbEntity srcDB = relationship.getSourceEntity().getDbEntity();
DbEntity targetDB = target.getDbEntity();
if (srcDB != null && targetDB != null) {
- Relationship anyConnector = srcDB.getAnyRelationship(targetDB);
+ DbRelationship anyConnector = srcDB.getAnyRelationship(targetDB);
if (anyConnector != null) {
- relationship.addDbRelationship((DbRelationship) anyConnector);
+ relationship.addDbRelationship(anyConnector);
}
}
}
@@ -214,7 +217,7 @@ public class ObjRelationshipTableModel extends CayenneTableModel<ObjRelationship
if (row < 0) {
return;
}
- Relationship rel = getRelationship(row);
+ ObjRelationship rel = getRelationship(row);
RelationshipEvent e;
e = new RelationshipEvent(eventSource, rel, entity, RelationshipEvent.REMOVE);
mediator.fireObjRelationshipEvent(e);
@@ -276,7 +279,7 @@ public class ObjRelationshipTableModel extends CayenneTableModel<ObjRelationship
private static class ObjRelationshipTableComparator implements Comparator<ObjRelationship>{
- private int sortCol;
+ private final int sortCol;
ObjRelationshipTableComparator(int sortCol) {
this.sortCol = sortCol;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/RootSelectionHandler.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/RootSelectionHandler.java
index e1f349445..bf56aa9ad 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/RootSelectionHandler.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/RootSelectionHandler.java
@@ -44,7 +44,7 @@ class RootSelectionHandler implements FocusListener, ActionListener {
public void actionPerformed(ActionEvent ae) {
QueryDescriptor query = queryTab.getQuery();
if (query != null) {
- Entity root = (Entity) queryTab.getQueryRoot().getModel().getSelectedItem();
+ Entity<?,?,?> root = (Entity<?,?,?>) queryTab.getQueryRoot().getModel().getSelectedItem();
if (root != null) {
query.setRoot(root);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SQLTemplatePrefetchTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SQLTemplatePrefetchTab.java
index f15ce0cec..538223cf3 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SQLTemplatePrefetchTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SQLTemplatePrefetchTab.java
@@ -138,7 +138,7 @@ public class SQLTemplatePrefetchTab extends JPanel implements PropertyChangeList
}
this.sqlTemplate = (SQLTemplateDescriptor) query;
- browser.setModel(createBrowserModel((Entity) sqlTemplate.getRoot()));
+ browser.setModel(createBrowserModel((Entity<?,?,?>) sqlTemplate.getRoot()));
table.setModel(createTableModel());
setUpPrefetchBox(table.getColumnModel().getColumn(2));
@@ -273,16 +273,16 @@ public class SQLTemplatePrefetchTab extends JPanel implements PropertyChangeList
return buffer.toString();
}
- protected TreeModel createBrowserModel(Entity entity) {
+ protected TreeModel createBrowserModel(Entity<?,?,?> entity) {
EntityTreeModel treeModel = new EntityTreeModel(entity);
treeModel.setFilter(
new EntityTreeFilter() {
- public boolean attributeMatch(Object node, Attribute attr) {
+ public boolean attributeMatch(Object node, Attribute<?,?,?> attr) {
return false;
}
- public boolean relationshipMatch(Object node, Relationship rel) {
+ public boolean relationshipMatch(Object node, Relationship<?,?,?> rel) {
return true;
}
});
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectPropertiesPanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectPropertiesPanel.java
index 453566281..064ee057f 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectPropertiesPanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectPropertiesPanel.java
@@ -21,8 +21,6 @@ package org.apache.cayenne.modeler.editor;
import java.awt.Component;
import java.awt.Container;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.util.Map;
import java.util.TreeMap;
@@ -55,7 +53,7 @@ import static org.apache.cayenne.util.Util.isNumeric;
*/
public abstract class SelectPropertiesPanel extends JPanel {
- private static Logger logObj = LoggerFactory.getLogger(SelectPropertiesPanel.class);
+ private static final Logger logObj = LoggerFactory.getLogger(SelectPropertiesPanel.class);
private static final Integer ZERO = 0;
@@ -63,7 +61,7 @@ public abstract class SelectPropertiesPanel extends JPanel {
private static final String LOCAL_CACHE_LABEL = "Local Cache (per ObjectContext)";
private static final String SHARED_CACHE_LABEL = "Shared Cache";
- protected static final Object[] CACHE_POLICIES = new Object[] {
+ protected static final QueryCacheStrategy[] CACHE_POLICIES = new QueryCacheStrategy[] {
QueryCacheStrategy.NO_CACHE,
QueryCacheStrategy.LOCAL_CACHE,
QueryCacheStrategy.SHARED_CACHE
@@ -80,7 +78,7 @@ public abstract class SelectPropertiesPanel extends JPanel {
protected TextAdapter fetchOffset;
protected TextAdapter fetchLimit;
protected TextAdapter pageSize;
- protected JComboBox cacheStrategy;
+ protected JComboBox<QueryCacheStrategy> cacheStrategy;
protected TextAdapter cacheGroups;
protected JComponent cacheGroupsLabel;
@@ -121,12 +119,10 @@ public abstract class SelectPropertiesPanel extends JPanel {
}
protected void initController() {
- cacheStrategy.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent event) {
- QueryCacheStrategy strategy = (QueryCacheStrategy) cacheStrategy.getModel().getSelectedItem();
- setQueryProperty(QueryMetadata.CACHE_STRATEGY_PROPERTY, strategy.name());
- setCacheGroupsEnabled(strategy != QueryCacheStrategy.NO_CACHE);
- }
+ cacheStrategy.addActionListener(event -> {
+ QueryCacheStrategy strategy = (QueryCacheStrategy) cacheStrategy.getModel().getSelectedItem();
+ setQueryProperty(QueryMetadata.CACHE_STRATEGY_PROPERTY, strategy.name());
+ setCacheGroupsEnabled(strategy != QueryCacheStrategy.NO_CACHE);
});
}
@@ -135,7 +131,7 @@ public abstract class SelectPropertiesPanel extends JPanel {
* query is changed.
*/
public void initFromModel(QueryDescriptor query) {
- DefaultComboBoxModel cacheModel = new DefaultComboBoxModel(CACHE_POLICIES);
+ DefaultComboBoxModel<QueryCacheStrategy> cacheModel = new DefaultComboBoxModel<>(CACHE_POLICIES);
String selectedStrategyString = query.getProperty(QueryMetadata.CACHE_STRATEGY_PROPERTY);
@@ -240,7 +236,7 @@ public abstract class SelectPropertiesPanel extends JPanel {
}
}
- final class CacheStrategyRenderer extends DefaultListCellRenderer {
+ static final class CacheStrategyRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(
JList list,
@@ -250,7 +246,7 @@ public abstract class SelectPropertiesPanel extends JPanel {
boolean arg4) {
if (object != null) {
- object = cachePolicyLabels.get(object);
+ object = cachePolicyLabels.get((QueryCacheStrategy)object);
}
if (object == null) {
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java
index e63b40bc6..cb692c784 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java
@@ -232,7 +232,7 @@ public class SelectQueryMainTab extends BaseQueryMainTab {
* Advanced checking. See CAY-888 #1
*/
if (query.getRoot() instanceof Entity) {
- checkExpression((Entity) query.getRoot(), exp);
+ checkExpression((Entity<?,?,?>) query.getRoot(), exp);
}
return exp;
@@ -256,7 +256,7 @@ public class SelectQueryMainTab extends BaseQueryMainTab {
* @param ex Expression to check
* @throws ValidationException when something's wrong
*/
- static void checkExpression(Entity root, Expression ex) throws ValidationException {
+ static void checkExpression(Entity<?,?,?> root, Expression ex) throws ValidationException {
try {
if (ex instanceof ASTPath) {
/*
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryOrderingTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryOrderingTab.java
index dec99f408..c3734c168 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryOrderingTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryOrderingTab.java
@@ -52,8 +52,6 @@ import javax.swing.tree.TreeModel;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.prefs.Preferences;
@@ -143,7 +141,7 @@ public class SelectQueryOrderingTab extends JPanel implements PropertyChangeList
}
this.selectQuery = (SelectQueryDescriptor) query;
- browser.setModel(createBrowserModel((Entity) selectQuery.getRoot()));
+ browser.setModel(createBrowserModel((Entity<?,?,?>) selectQuery.getRoot()));
table.setModel(createTableModel());
// init column sizes
@@ -207,13 +205,7 @@ public class SelectQueryOrderingTab extends JPanel implements PropertyChangeList
Icon removeIcon = ModelerUtil.buildIcon("icon-trash.png");
remove.setIcon(removeIcon);
remove.setDisabledIcon(FilteredIconFactory.createDisabledIcon(removeIcon));
- remove.addActionListener(new ActionListener() {
-
- public void actionPerformed(ActionEvent e) {
- removeOrdering();
- }
-
- });
+ remove.addActionListener(e -> removeOrdering());
JToolBar toolBar = new JToolBar();
toolBar.setBorder(BorderFactory.createEmptyBorder());
@@ -223,7 +215,7 @@ public class SelectQueryOrderingTab extends JPanel implements PropertyChangeList
return toolBar;
}
- protected TreeModel createBrowserModel(Entity entity) {
+ protected TreeModel createBrowserModel(Entity<?,?,?> entity) {
return new EntityTreeModel(entity);
}
@@ -322,7 +314,7 @@ public class SelectQueryOrderingTab extends JPanel implements PropertyChangeList
}
@Override
- public Class getColumnClass(int column) {
+ public Class<?> getColumnClass(int column) {
switch (column) {
case 0:
return String.class;
@@ -359,29 +351,24 @@ public class SelectQueryOrderingTab extends JPanel implements PropertyChangeList
switch (column) {
case 1:
- if (((Boolean) value).booleanValue()) {
+ if ((Boolean) value) {
ordering.setAscending();
- }
- else {
+ } else {
ordering.setDescending();
}
break;
case 2:
- if (((Boolean) value).booleanValue()) {
+ if ((Boolean) value) {
ordering.setCaseInsensitive();
- }
- else {
+ } else {
ordering.setCaseSensitive();
}
break;
default:
- throw new IndexOutOfBoundsException("Invalid editable column: "
- + column);
+ throw new IndexOutOfBoundsException("Invalid editable column: " + column);
}
- mediator.fireQueryEvent(new QueryEvent(
- SelectQueryOrderingTab.this,
- selectQuery));
+ mediator.fireQueryEvent(new QueryEvent(SelectQueryOrderingTab.this, selectQuery));
}
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryPrefetchTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryPrefetchTab.java
index 2708ed1f7..e1c206df7 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryPrefetchTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryPrefetchTab.java
@@ -128,15 +128,15 @@ public class SelectQueryPrefetchTab extends SelectQueryOrderingTab {
return toolBar;
}
- protected TreeModel createBrowserModel(Entity entity) {
+ protected TreeModel createBrowserModel(Entity<?,?,?> entity) {
EntityTreeModel treeModel = new EntityTreeModel(entity);
treeModel.setFilter(
new EntityTreeFilter() {
- public boolean attributeMatch(Object node, Attribute attr) {
+ public boolean attributeMatch(Object node, Attribute<?,?,?> attr) {
return false;
}
- public boolean relationshipMatch(Object node, Relationship rel) {
+ public boolean relationshipMatch(Object node, Relationship<?,?,?> rel) {
return true;
}
});
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java
index e897ff27b..b13db54f4 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityTabbedView.java
@@ -142,7 +142,7 @@ public class DbEntityTabbedView extends JTabbedPane implements ChangeListener,
return;
// update attribute selection
- Attribute[] attrs = e.getAttributes();
+ Attribute<?,?,?>[] attrs = e.getAttributes();
DbAttribute[] dbAttrs = new DbAttribute[attrs.length];
System.arraycopy(attrs, 0, dbAttrs, 0, attrs.length);
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 7fd3027f0..8b97f5cba 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
@@ -22,7 +22,6 @@ import java.util.List;
import org.apache.cayenne.exp.ExpressionException;
import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.modeler.editor.validation.ObjAttributeWrapperValidator;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/AttributeDisplayEvent.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/AttributeDisplayEvent.java
index 87784a5fc..e67fdf8d3 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/AttributeDisplayEvent.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/AttributeDisplayEvent.java
@@ -25,12 +25,12 @@ import org.apache.cayenne.map.Entity;
public class AttributeDisplayEvent extends EntityDisplayEvent {
- protected final Attribute[] attributes;
+ protected final Attribute<?,?,?>[] attributes;
public AttributeDisplayEvent(
Object src,
- Attribute attribute,
- Entity entity,
+ Attribute<?,?,?> attribute,
+ Entity<?,?,?> entity,
DataMap dataMap,
DataChannelDescriptor domain) {
this(src, new Attribute[]{attribute}, entity, dataMap, domain);
@@ -38,15 +38,15 @@ public class AttributeDisplayEvent extends EntityDisplayEvent {
public AttributeDisplayEvent(
Object src,
- Attribute[] attributes,
- Entity entity,
+ Attribute<?,?,?>[] attributes,
+ Entity<?,?,?> entity,
DataMap dataMap,
DataChannelDescriptor domain) {
super(src, entity, dataMap, domain);
this.attributes = attributes;
}
- public Attribute[] getAttributes() {
+ public Attribute<?,?,?>[] getAttributes() {
return attributes;
}
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/EntityDisplayEvent.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/EntityDisplayEvent.java
index bfcf9cddd..29b1b4fe2 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/EntityDisplayEvent.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/EntityDisplayEvent.java
@@ -29,7 +29,7 @@ import org.apache.cayenne.map.Entity;
*/
public class EntityDisplayEvent extends DataMapDisplayEvent {
- protected Entity entity;
+ protected Entity<?,?,?> entity;
/**
* If true, the event causes entity editor to switch to the main entity tab.
@@ -42,16 +42,16 @@ public class EntityDisplayEvent extends DataMapDisplayEvent {
protected boolean entityChanged = true;
protected boolean unselectAttributes;
- public EntityDisplayEvent(Object src, Entity entity) {
+ public EntityDisplayEvent(Object src, Entity<?,?,?> entity) {
this(src, entity, null, null, null);
}
- public EntityDisplayEvent(Object src, Entity entity, DataMap map, DataChannelDescriptor dataChannelDescriptor) {
+ public EntityDisplayEvent(Object src, Entity<?,?,?> entity, DataMap map, DataChannelDescriptor dataChannelDescriptor) {
this(src, entity, map, null, dataChannelDescriptor);
}
- public EntityDisplayEvent(Object src, Entity entity, DataMap map, DataNodeDescriptor node,
+ public EntityDisplayEvent(Object src, Entity<?,?,?> entity, DataMap map, DataNodeDescriptor node,
DataChannelDescriptor dataChannelDescriptor) {
super(src, map, dataChannelDescriptor, node);
@@ -62,7 +62,7 @@ public class EntityDisplayEvent extends DataMapDisplayEvent {
/**
* Returns entity associated with this event.
*/
- public Entity getEntity() {
+ public Entity<?,?,?> getEntity() {
return entity;
}
@@ -83,7 +83,7 @@ public class EntityDisplayEvent extends DataMapDisplayEvent {
this.unselectAttributes = unselectAttributes;
}
- public void setEntity(Entity entity) {
+ public void setEntity(Entity<?,?,?> entity) {
this.entity = entity;
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/RelationshipDisplayEvent.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/RelationshipDisplayEvent.java
index 83750b751..5b20f38f1 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/RelationshipDisplayEvent.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/event/RelationshipDisplayEvent.java
@@ -25,13 +25,13 @@ import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.Relationship;
public class RelationshipDisplayEvent extends EntityDisplayEvent {
- protected Relationship[] relationships;
+ protected Relationship<?,?,?>[] relationships;
protected boolean relationshipChanged = true;
public RelationshipDisplayEvent(
Object src,
- Relationship relationship,
- Entity entity,
+ Relationship<?,?,?> relationship,
+ Entity<?,?,?> entity,
DataMap map,
DataChannelDescriptor domain) {
@@ -41,8 +41,8 @@ public class RelationshipDisplayEvent extends EntityDisplayEvent {
public RelationshipDisplayEvent(
Object src,
- Relationship[] relationships,
- Entity entity,
+ Relationship<?,?,?>[] relationships,
+ Entity<?,?,?> entity,
DataMap map,
DataChannelDescriptor domain) {
@@ -50,7 +50,7 @@ public class RelationshipDisplayEvent extends EntityDisplayEvent {
this.relationships = relationships;
}
- public Relationship[] getRelationships() {
+ public Relationship<?,?,?>[] getRelationships() {
return relationships;
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/BaseGraphBuilder.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/BaseGraphBuilder.java
index c7ef52e4d..2d80de535 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/BaseGraphBuilder.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/BaseGraphBuilder.java
@@ -41,6 +41,7 @@ import org.apache.cayenne.configuration.ConfigurationNodeVisitor;
import org.apache.cayenne.configuration.DataChannelDescriptor;
import org.apache.cayenne.configuration.event.DataMapEvent;
import org.apache.cayenne.configuration.event.DataMapListener;
+import org.apache.cayenne.map.Attribute;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.Relationship;
@@ -70,7 +71,8 @@ import com.jgraph.layout.organic.JGraphOrganicLayout;
/**
* Base class for building graphs of entities
*/
-abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
+abstract class BaseGraphBuilder<E extends Entity<E, A, R>, A extends Attribute<E, A, R>, R extends Relationship<E, A, R>>
+ implements GraphBuilder<E, A, R>, DataMapListener {
static final Font EDGE_FONT = new Font("Verdana", Font.PLAIN, 10);
@@ -106,7 +108,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
*/
protected transient ProjectController mediator;
- protected transient Entity selectedEntity;
+ protected transient Entity<E, A, R> selectedEntity;
transient JPopupMenu popup;
@@ -148,7 +150,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
DefaultGraphCell mapCell = new DefaultGraphCell();
createdObjects.add(mapCell);
- for (Entity entity : getEntities(map)) {
+ for (E entity : getEntities(map)) {
DefaultGraphCell cell = createEntityCell(entity);
// mapCell.add(cell);
@@ -164,7 +166,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
* 2. Add all relationships
*/
for (DataMap map : domain.getDataMaps()) {
- for (Entity entity : getEntities(map)) {
+ for (E entity : getEntities(map)) {
DefaultGraphCell sourceCell = entityCells.get(entity.getName());
postProcessEntity(entity, sourceCell);
@@ -207,7 +209,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
// JGraphSimpleLayout layout = new JGraphSimpleLayout(JGraphSimpleLayout.TYPE_TILT, 4000, 2000);
layout.run(facade);
// Obtain a map of the resulting attribute changes from the facade
- Map nested = facade.createNestedMap(true, true);
+ Map<?,?> nested = facade.createNestedMap(true, true);
// Apply the results to the actual graph
edit(nested);
@@ -216,14 +218,15 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
private void addMouseListeners() {
graph.addMouseListener(new MouseAdapter() {
+ @SuppressWarnings("unchecked")
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
Object selected = graph.getSelectionCell();
- if (selected != null && selected instanceof DefaultGraphCell) {
+ if (selected instanceof DefaultGraphCell) {
Object userObject = ((DefaultGraphCell) selected).getUserObject();
if (userObject instanceof EntityCellMetadata) {
- showPopup(e.getPoint(), ((EntityCellMetadata) userObject).fetchEntity());
+ showPopup(e.getPoint(), ((EntityCellMetadata<E,A,R>) userObject).fetchEntity());
}
}
}
@@ -257,7 +260,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
for (int isolatedIndex = 0; isolatedIndex < isolatedObjects.size();) {
for (int i = 0; isolatedIndex < isolatedObjects.size() && i < x - row; i++) {
GraphConstants.setBounds(isolatedObjects.get(isolatedIndex).getAttributes(),
- new Rectangle2D.Double(pref.width - posX, pref.height - 3 * posY / 2, 10, 10));
+ new Rectangle2D.Double(pref.width - posX, pref.height - (3.0 * posY) / 2, 10, 10));
isolatedIndex += 2; // because every 2nd object is port
posX += dx;
}
@@ -268,7 +271,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
}
}
- protected DefaultGraphCell createEntityCell(Entity entity) {
+ protected DefaultGraphCell createEntityCell(E entity) {
DefaultGraphCell cell = new DefaultGraphCell(getCellMetadata(entity));
GraphConstants.setResize(cell.getAttributes(), true);
@@ -289,8 +292,8 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
/**
* Post (i.e. after creation on entity cell) process of the entity
*/
- protected void postProcessEntity(Entity<?,?,?> entity, DefaultGraphCell cell) {
- for (Relationship rel : entity.getRelationships()) {
+ protected void postProcessEntity(E entity, DefaultGraphCell cell) {
+ for (R rel : entity.getRelationships()) {
if (rel.getSourceEntity() != null && rel.getTargetEntity() != null) {
DefaultEdge edge = createRelationshipCell(rel);
if (edge != null) {
@@ -304,12 +307,12 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
* Returns whether an entity is not connected to any other TODO: not fine
* algorithm, it iterates through all entities and all rels
*/
- protected boolean isIsolated(DataChannelDescriptor domain, Entity entity) {
+ protected boolean isIsolated(DataChannelDescriptor domain, E entity) {
if (entity.getRelationships().size() == 0) {
// searching for rels that have a target="entity"
for (DataMap map : domain.getDataMaps()) {
- for (Entity source : getEntities(map)) {
+ for (E source : getEntities(map)) {
if (source.getAnyRelationship(entity) != null) {
return false;
}
@@ -320,13 +323,14 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
return false;
}
- protected abstract Collection<? extends Entity> getEntities(DataMap map);
+ protected abstract Collection<E> getEntities(DataMap map);
/**
* Returns label for relationship on the graph, considering its "mandatory"
* and "to-many" properties
*/
- private static String getRelationshipLabel(Relationship rel) {
+ private static <E extends Entity<E, A, R>, A extends Attribute<E, A, R>, R extends Relationship<E, A, R>>
+ String getRelationshipLabel(Relationship<E, A, R> rel) {
if (rel == null) {
return null;
}
@@ -340,9 +344,9 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
/**
* Returns metadata (user object) for this cell
*/
- protected abstract EntityCellMetadata getCellMetadata(Entity e);
+ protected abstract EntityCellMetadata<E, A, R> getCellMetadata(E e);
- protected void showPopup(Point p, Entity entity) {
+ protected void showPopup(Point p, Entity<E, A, R> entity) {
selectedEntity = entity;
if (popup == null) {
popup = createPopupMenu();
@@ -351,7 +355,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
}
@Override
- public Entity getSelectedEntity() {
+ public Entity<E, A, R> getSelectedEntity() {
return selectedEntity;
}
@@ -375,7 +379,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
/**
* Updates specified entity on the graph
*/
- protected void updateEntityCell(Entity e) {
+ protected void updateEntityCell(E e) {
DefaultGraphCell cell = entityCells.get(e.getName());
if (cell != null) {
GraphConstants.setValue(cell.getAttributes(), getCellMetadata(e));
@@ -388,7 +392,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
}
}
- protected void updateRelationshipCell(Relationship rel) {
+ protected void updateRelationshipCell(R rel) {
if (rel.getSourceEntity() != null && rel.getTargetEntity() != null) {
DefaultEdge edge = relCells.get(getQualifiedName(rel));
if (edge != null) {
@@ -403,7 +407,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
}
}
- protected void removeEntityCell(Entity e) {
+ protected void removeEntityCell(E e) {
final DefaultGraphCell cell = entityCells.get(e.getName());
if (cell != null) {
runWithUndoDisabled(() -> graph.getGraphLayoutCache().remove(new Object[] { cell }, true, true));
@@ -411,7 +415,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
}
}
- protected void removeRelationshipCell(Relationship rel) {
+ protected void removeRelationshipCell(R rel) {
final DefaultEdge edge = relCells.get(getQualifiedName(rel));
if (edge != null) {
runWithUndoDisabled(() -> graph.getGraphLayoutCache().remove(new Object[] { edge }));
@@ -419,9 +423,9 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
}
}
- protected DefaultEdge createRelationshipCell(Relationship rel) {
+ protected DefaultEdge createRelationshipCell(R rel) {
if (!relCells.containsKey(getQualifiedName(rel))) {
- Relationship reverse = rel.getReverseRelationship();
+ Relationship<E, A, R> reverse = rel.getReverseRelationship();
DefaultEdge edge = new DefaultEdge();
@@ -448,12 +452,12 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
return null;
}
- protected void insertRelationshipCell(Relationship rel) {
+ protected void insertRelationshipCell(R rel) {
DefaultEdge edge = createRelationshipCell(rel);
insert(edge);
}
- protected void insertEntityCell(Entity entity) {
+ protected void insertEntityCell(E entity) {
DefaultGraphCell cell = createEntityCell(entity);
// putting cell to a random posistion..
@@ -469,7 +473,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
/**
* Updates relationship labels for specified relationship edge.
*/
- protected void updateRelationshipLabels(DefaultEdge edge, Relationship rel, Relationship reverse) {
+ protected void updateRelationshipLabels(DefaultEdge edge, Relationship<E, A, R> rel, Relationship<E, A, R> reverse) {
DefaultGraphCell sourceCell = entityCells.get(rel.getSourceEntity().getName());
DefaultGraphCell targetCell = entityCells.get(rel.getTargetEntity().getName());
@@ -502,7 +506,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
@Override
public void dataMapRemoved(DataMapEvent e) {
- for (Entity entity : getEntities(e.getDataMap())) {
+ for (E entity : getEntities(e.getDataMap())) {
removeEntityCell(entity);
}
}
@@ -539,9 +543,10 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
/**
* Checks if entity name has changed, then changes map key
*/
+ @SuppressWarnings("unchecked")
protected void remapRelationship(RelationshipEvent e) {
if (e.isNameChange()) {
- relCells.put(getQualifiedName(e.getRelationship()),
+ relCells.put(getQualifiedName((Relationship<E, A, R>)e.getRelationship()),
relCells.remove(e.getEntity().getName() + "." + e.getOldName()));
}
}
@@ -550,7 +555,8 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
* Returns qualified name (entity name + relationship name) for a
* relationship
*/
- static String getQualifiedName(Relationship rel) {
+ static <E extends Entity<E, A, R>, A extends Attribute<E, A, R>, R extends Relationship<E, A, R>>
+ String getQualifiedName(Relationship<E, A, R> rel) {
return rel.getSourceEntity().getName() + "." + rel.getName();
}
@@ -575,7 +581,7 @@ abstract class BaseGraphBuilder implements GraphBuilder, DataMapListener {
encoder.end();
}
- private void edit(final Map map) {
+ private void edit(final Map<?,?> map) {
runWithUndoDisabled(() -> graph.getGraphLayoutCache().edit(map));
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java
index e8252bc2f..47bbcfb2e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java
@@ -58,7 +58,7 @@ public class DataDomainGraphTab extends JPanel implements DomainDisplayListener,
/**
* Diagram selection combo
*/
- JComboBox diagramCombo;
+ JComboBox<String> diagramCombo;
/**
* Scrollpane that the graph will be added to
@@ -125,7 +125,7 @@ public class DataDomainGraphTab extends JPanel implements DomainDisplayListener,
// selecting an event
// choose type of diagram
- Entity entity = ((EntityDisplayEvent) e).getEntity();
+ Entity<?,?,?> entity = ((EntityDisplayEvent) e).getEntity();
diagramCombo.setSelectedIndex(entity instanceof ObjEntity ? 1 : 0);
refresh();
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DbGraphBuilder.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DbGraphBuilder.java
index b2261d667..9c9530807 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DbGraphBuilder.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DbGraphBuilder.java
@@ -23,8 +23,9 @@ import java.util.Collection;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.dbsync.model.DetectedDbEntity;
-import org.apache.cayenne.map.Entity;
-import org.apache.cayenne.map.Relationship;
+import org.apache.cayenne.map.DbAttribute;
+import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.event.AttributeEvent;
import org.apache.cayenne.map.event.DbAttributeListener;
import org.apache.cayenne.map.event.DbEntityListener;
@@ -39,18 +40,18 @@ import org.jgraph.graph.GraphConstants;
/**
* Class for building ER-graph, based on DbEntity information
*/
-class DbGraphBuilder extends BaseGraphBuilder implements DbEntityListener,
+class DbGraphBuilder extends BaseGraphBuilder<DbEntity, DbAttribute, DbRelationship> implements DbEntityListener,
DbAttributeListener, DbRelationshipListener {
static final Color ENTITY_COLOR = new Color(197, 253, 252);
@Override
- protected Collection<? extends Entity> getEntities(DataMap map) {
+ protected Collection<DbEntity> getEntities(DataMap map) {
return map.getDbEntities();
}
@Override
- protected void postProcessEntity(Entity entity, DefaultGraphCell cell) {
+ protected void postProcessEntity(DbEntity entity, DefaultGraphCell cell) {
super.postProcessEntity(entity, cell);
GraphConstants.setBackground(cell.getAttributes(), ENTITY_COLOR);
@@ -58,12 +59,12 @@ class DbGraphBuilder extends BaseGraphBuilder implements DbEntityListener,
}
@Override
- protected EntityCellMetadata getCellMetadata(Entity e) {
+ protected DbEntityCellMetadata getCellMetadata(DbEntity e) {
return new DbEntityCellMetadata(this, e.getName());
}
@Override
- protected DefaultEdge createRelationshipCell(Relationship rel) {
+ protected DefaultEdge createRelationshipCell(DbRelationship rel) {
DefaultEdge edge = super.createRelationshipCell(rel);
if (edge != null) {
GraphConstants.setDashPattern(edge.getAttributes(), new float[] {
@@ -95,29 +96,29 @@ class DbGraphBuilder extends BaseGraphBuilder implements DbEntityListener,
if(e.getEntity() instanceof DetectedDbEntity) {
return;
}
- insertEntityCell(e.getEntity());
+ insertEntityCell((DbEntity) e.getEntity());
}
public void dbEntityChanged(EntityEvent e) {
remapEntity(e);
- updateEntityCell(e.getEntity());
+ updateEntityCell((DbEntity)e.getEntity());
}
public void dbEntityRemoved(EntityEvent e) {
- removeEntityCell(e.getEntity());
+ removeEntityCell((DbEntity) e.getEntity());
}
public void dbAttributeAdded(AttributeEvent e) {
- updateEntityCell(e.getEntity());
+ updateEntityCell((DbEntity)e.getEntity());
}
public void dbAttributeChanged(AttributeEvent e) {
- updateEntityCell(e.getEntity());
+ updateEntityCell((DbEntity)e.getEntity());
}
public void dbAttributeRemoved(AttributeEvent e) {
- updateEntityCell(e.getEntity());
+ updateEntityCell((DbEntity)e.getEntity());
}
public void dbRelationshipAdded(RelationshipEvent e) {
@@ -125,12 +126,12 @@ class DbGraphBuilder extends BaseGraphBuilder implements DbEntityListener,
}
public void dbRelationshipChanged(RelationshipEvent e) {
- updateRelationshipCell(e.getRelationship());
+ updateRelationshipCell((DbRelationship) e.getRelationship());
}
public void dbRelationshipRemoved(RelationshipEvent e) {
remapRelationship(e);
- removeRelationshipCell(e.getRelationship());
+ removeRelationshipCell((DbRelationship) e.getRelationship());
}
public GraphType getType() {
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/EntityCellMetadata.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/EntityCellMetadata.java
index b9affa6ec..55749744d 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/EntityCellMetadata.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/EntityCellMetadata.java
@@ -27,7 +27,8 @@ import org.apache.cayenne.map.Relationship;
/**
* Abstract class to describe entity's cell
*/
-abstract class EntityCellMetadata<E extends Entity<E, T, U>, T extends Attribute<E,T,U>, U extends Relationship<E,T,U>> implements Serializable {
+abstract class EntityCellMetadata<E extends Entity<E, A, R>, A extends Attribute<E, A, R>, R extends Relationship<E, A, R>>
+ implements Serializable {
GraphBuilder builder;
String entityName;
@@ -46,7 +47,7 @@ abstract class EntityCellMetadata<E extends Entity<E, T, U>, T extends Attribute
/**
* Resolves entity
*/
- public abstract Entity<E,T,U> fetchEntity();
+ public abstract Entity<E, A, R> fetchEntity();
final void rebuildLabel() {
label = createLabel();
@@ -64,15 +65,15 @@ abstract class EntityCellMetadata<E extends Entity<E, T, U>, T extends Attribute
* Creates label for this cell
*/
String createLabel() {
- Entity<E,T,U> entity = fetchEntity();
+ Entity<E, A, R> entity = fetchEntity();
StringBuilder label = new StringBuilder("<html><center><u><b>").
append(entity.getName()).append("</b></u></center>");
- for (T attr : entity.getAttributes()) {
+ for (A attr : entity.getAttributes()) {
if (isPrimary(attr)) {
label.append("<br><i>").append(attr.getName()).append("</i>");
}
}
- for (T attr : entity.getAttributes()) {
+ for (A attr : entity.getAttributes()) {
if (!isPrimary(attr)) {
label.append("<br>").append(attr.getName());
}
@@ -83,5 +84,5 @@ abstract class EntityCellMetadata<E extends Entity<E, T, U>, T extends Attribute
/**
* Returns whether attribute is "primary" and should therefore be written in italic
*/
- protected abstract boolean isPrimary(T attr);
+ protected abstract boolean isPrimary(A attr);
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/GraphBuilder.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/GraphBuilder.java
index 5764ce4d0..1ebbd5278 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/GraphBuilder.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/GraphBuilder.java
@@ -21,7 +21,9 @@ package org.apache.cayenne.modeler.graph;
import javax.swing.event.UndoableEditListener;
import org.apache.cayenne.configuration.DataChannelDescriptor;
+import org.apache.cayenne.map.Attribute;
import org.apache.cayenne.map.Entity;
+import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.util.XMLSerializable;
import org.jgraph.JGraph;
@@ -30,7 +32,7 @@ import org.jgraph.graph.DefaultGraphCell;
/**
* Interface for building graphs which represent some perspective of a domain
*/
-public interface GraphBuilder extends XMLSerializable, UndoableEditListener {
+public interface GraphBuilder<E extends Entity<E, A, R>, A extends Attribute<E, A, R>, R extends Relationship<E, A, R>> extends XMLSerializable, UndoableEditListener {
double ZOOM_FACTOR = 1.3;
@@ -62,7 +64,7 @@ public interface GraphBuilder extends XMLSerializable, UndoableEditListener {
/**
* Returns selected entity, <code>null</code> if none is selected
*/
- Entity getSelectedEntity();
+ Entity<E,A,R> getSelectedEntity();
/**
* Returns cell of an entity
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/ObjGraphBuilder.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/ObjGraphBuilder.java
index d7189b1a3..10ef31174 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/ObjGraphBuilder.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/ObjGraphBuilder.java
@@ -20,10 +20,11 @@ package org.apache.cayenne.modeler.graph;
import org.apache.cayenne.configuration.DataChannelDescriptor;
import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.EntityInheritanceTree;
import org.apache.cayenne.map.EntityResolver;
+import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.map.event.AttributeEvent;
import org.apache.cayenne.map.event.EntityEvent;
import org.apache.cayenne.map.event.ObjAttributeListener;
@@ -35,7 +36,6 @@ import org.jgraph.graph.AttributeMap;
import org.jgraph.graph.DefaultEdge;
import org.jgraph.graph.DefaultGraphCell;
import org.jgraph.graph.GraphConstants;
-import org.slf4j.LoggerFactory;
import java.awt.*;
import java.util.Collection;
@@ -45,30 +45,30 @@ import java.util.Map;
/**
* Builder of ObjEntity information-based graph (relative to UML class diagram)
*/
-class ObjGraphBuilder extends BaseGraphBuilder implements ObjEntityListener,
+class ObjGraphBuilder extends BaseGraphBuilder<ObjEntity, ObjAttribute, ObjRelationship> implements ObjEntityListener,
ObjAttributeListener, ObjRelationshipListener {
static final Color ENTITY_COLOR = new Color(255, 255, 185);
- Map<Entity, DefaultEdge> inheritanceEdges;
+ Map<ObjEntity, DefaultEdge> inheritanceEdges;
public ObjGraphBuilder() {
inheritanceEdges = new HashMap<>();
}
@Override
- protected Collection<? extends Entity> getEntities(DataMap map) {
+ protected Collection<ObjEntity> getEntities(DataMap map) {
return map.getObjEntities();
}
@Override
- protected boolean isIsolated(DataChannelDescriptor domain, Entity entity) {
+ protected boolean isIsolated(DataChannelDescriptor domain, ObjEntity entity) {
if (!super.isIsolated(domain, entity)) {
return false;
}
- if (((ObjEntity) entity).getSuperEntity() != null) {
+ if (entity.getSuperEntity() != null) {
return false;
}
@@ -79,13 +79,13 @@ class ObjGraphBuilder extends BaseGraphBuilder implements ObjEntityListener,
}
@Override
- protected void postProcessEntity(Entity entity, DefaultGraphCell cell) {
+ protected void postProcessEntity(ObjEntity entity, DefaultGraphCell cell) {
super.postProcessEntity(entity, cell);
GraphConstants.setBackground(cell.getAttributes(), ENTITY_COLOR);
GraphConstants.setOpaque(cell.getAttributes(), true);
- DefaultEdge edge = createInheritanceEdge((ObjEntity) entity);
+ DefaultEdge edge = createInheritanceEdge(entity);
if (edge != null) {
createdObjects.add(edge);
}
@@ -119,7 +119,7 @@ class ObjGraphBuilder extends BaseGraphBuilder implements ObjEntityListener,
}
@Override
- protected EntityCellMetadata getCellMetadata(Entity e) {
+ protected ObjEntityCellMetadata getCellMetadata(ObjEntity e) {
return new ObjEntityCellMetadata(this, e.getName());
}
@@ -141,13 +141,13 @@ class ObjGraphBuilder extends BaseGraphBuilder implements ObjEntityListener,
}
public void objEntityAdded(EntityEvent e) {
- insertEntityCell(e.getEntity());
+ insertEntityCell((ObjEntity) e.getEntity());
}
public void objEntityChanged(EntityEvent e) {
remapEntity(e);
- updateEntityCell(e.getEntity());
+ updateEntityCell((ObjEntity)e.getEntity());
// maybe super entity was changed
ObjEntity entity = (ObjEntity) e.getEntity();
@@ -178,19 +178,19 @@ class ObjGraphBuilder extends BaseGraphBuilder implements ObjEntityListener,
}
public void objEntityRemoved(EntityEvent e) {
- removeEntityCell(e.getEntity());
+ removeEntityCell((ObjEntity)e.getEntity());
}
public void objAttributeAdded(AttributeEvent e) {
- updateEntityCell(e.getEntity());
+ updateEntityCell((ObjEntity)e.getEntity());
}
public void objAttributeChanged(AttributeEvent e) {
- updateEntityCell(e.getEntity());
+ updateEntityCell((ObjEntity)e.getEntity());
}
public void objAttributeRemoved(AttributeEvent e) {
- updateEntityCell(e.getEntity());
+ updateEntityCell((ObjEntity)e.getEntity());
}
public void objRelationshipAdded(RelationshipEvent e) {
@@ -199,15 +199,15 @@ class ObjGraphBuilder extends BaseGraphBuilder implements ObjEntityListener,
public void objRelationshipChanged(RelationshipEvent e) {
remapRelationship(e);
- updateRelationshipCell(e.getRelationship());
+ updateRelationshipCell((ObjRelationship) e.getRelationship());
}
public void objRelationshipRemoved(RelationshipEvent e) {
- removeRelationshipCell(e.getRelationship());
+ removeRelationshipCell((ObjRelationship)e.getRelationship());
}
@Override
- protected void removeEntityCell(Entity e) {
+ protected void removeEntityCell(ObjEntity e) {
super.removeEntityCell(e);
inheritanceEdges.remove(e);
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/EntityDisplayAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/EntityDisplayAction.java
index 43e9a62dc..d0be3808a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/EntityDisplayAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/EntityDisplayAction.java
@@ -40,7 +40,7 @@ public class EntityDisplayAction extends CayenneAction {
*/
private CayenneAction delegate;
- private GraphBuilder builder;
+ private final GraphBuilder builder;
public EntityDisplayAction(GraphBuilder builder) {
super("Show", Application.getInstance());
@@ -75,7 +75,7 @@ public class EntityDisplayAction extends CayenneAction {
}
private boolean display() {
- Entity entity = builder.getSelectedEntity();
+ Entity<?,?,?> entity = builder.getSelectedEntity();
if (entity == null) {
return false;
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RemoveEntityAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RemoveEntityAction.java
index 45abe93d2..110720fde 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RemoveEntityAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/RemoveEntityAction.java
@@ -33,9 +33,9 @@ import org.apache.cayenne.modeler.undo.RemoveUndoableEdit;
* Action for removing entities from the graph
*/
public class RemoveEntityAction extends RemoveAction {
- GraphBuilder builder;
+ GraphBuilder<?,?,?> builder;
- public RemoveEntityAction(GraphBuilder builder) {
+ public RemoveEntityAction(GraphBuilder<?,?,?> builder) {
super(Application.getInstance());
this.builder = builder;
setEnabled(true);
@@ -45,7 +45,7 @@ public class RemoveEntityAction extends RemoveAction {
public void performAction(ActionEvent e, boolean allowAsking) {
ConfirmRemoveDialog dialog = getConfirmDeleteDialog(allowAsking);
- Entity entity = builder.getSelectedEntity();
+ Entity<?,?,?> entity = builder.getSelectedEntity();
if (entity == null) {
return;
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/ShowGraphEntityAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/ShowGraphEntityAction.java
index df9a8e64f..7b4eac0ef 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/ShowGraphEntityAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/action/ShowGraphEntityAction.java
@@ -52,13 +52,12 @@ public class ShowGraphEntityAction extends CayenneAction {
@Override
public void performAction(ActionEvent e) {
- Entity entity = null;
+ Entity<?,?,?> entity = null;
ProjectController mediator = getProjectController();
if (mediator.getCurrentDbEntity() != null) {
entity = mediator.getCurrentDbEntity();
- }
- else if (mediator.getCurrentObjEntity() != null) {
+ } else if (mediator.getCurrentObjEntity() != null) {
entity = mediator.getCurrentObjEntity();
}
@@ -72,7 +71,7 @@ public class ShowGraphEntityAction extends CayenneAction {
return object instanceof Entity;
}
- void showEntity(Entity entity) {
+ void showEntity(Entity<?,?,?> entity) {
// we're always in same domain
EditorView editor = ((CayenneModelerFrame) Application
.getInstance()
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/RemoveUndoableEdit.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/RemoveUndoableEdit.java
index b595acb83..fa353c189 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/RemoveUndoableEdit.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/undo/RemoveUndoableEdit.java
@@ -29,7 +29,6 @@ import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.map.Procedure;
import org.apache.cayenne.map.QueryDescriptor;
-import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.modeler.Application;
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.modeler.action.CreateDataMapAction;
@@ -64,23 +63,21 @@ public class RemoveUndoableEdit extends CayenneUndoableEdit {
private Embeddable embeddable;
- private Map<DbEntity, List<DbRelationship>> dbRelationshipMap = new HashMap<>();
- private Map<ObjEntity, List<ObjRelationship>> objRelationshipMap = new HashMap<>();
+ private final Map<DbEntity, List<DbRelationship>> dbRelationshipMap = new HashMap<>();
+ private final Map<ObjEntity, List<ObjRelationship>> objRelationshipMap = new HashMap<>();
- private static enum REMOVE_MODE {
+ private enum REMOVE_MODE {
OBJECT_ENTITY, DB_ENTITY, QUERY, PROCEDURE, MAP_FROM_NODE, MAP_FROM_DOMAIN, NODE, DOMAIN, EMBEDDABLE
- };
+ }
- private REMOVE_MODE mode;
+ private final REMOVE_MODE mode;
public RemoveUndoableEdit(Application application) {
this.domain = (DataChannelDescriptor) application.getProject().getRootNode();
- ;
this.mode = REMOVE_MODE.DOMAIN;
}
- public RemoveUndoableEdit(Application application, DataNodeDescriptor node,
- DataMap map) {
+ public RemoveUndoableEdit(Application application, DataNodeDescriptor node, DataMap map) {
this.map = map;
this.dataNode = node;
this.mode = REMOVE_MODE.MAP_FROM_NODE;
@@ -88,14 +85,12 @@ public class RemoveUndoableEdit extends CayenneUndoableEdit {
public RemoveUndoableEdit(Application application, DataMap map) {
this.domain = (DataChannelDescriptor) application.getProject().getRootNode();
- ;
this.map = map;
this.mode = REMOVE_MODE.MAP_FROM_DOMAIN;
}
public RemoveUndoableEdit(Application application, DataNodeDescriptor node) {
this.domain = (DataChannelDescriptor) application.getProject().getRootNode();
- ;
this.dataNode = node;
this.mode = REMOVE_MODE.NODE;
}
@@ -107,20 +102,10 @@ public class RemoveUndoableEdit extends CayenneUndoableEdit {
for (ObjEntity ent : map.getObjEntities()) {
// take a copy since we're going to modify the entity
- for (Relationship relationship : new ArrayList<Relationship>(ent
- .getRelationships())) {
-
+ for (ObjRelationship relationship : new ArrayList<>(ent.getRelationships())) {
if (this.objEntity.getName().equals(relationship.getTargetEntityName())) {
-
- ObjRelationship rel = (ObjRelationship) relationship;
-
- if (objRelationshipMap.get(rel.getSourceEntity()) == null) {
- objRelationshipMap.put(
- (ObjEntity) rel.getSourceEntity(),
- new LinkedList<ObjRelationship>());
- }
-
- objRelationshipMap.get(rel.getSourceEntity()).add(rel);
+ objRelationshipMap.computeIfAbsent(relationship.getSourceEntity(), k -> new LinkedList<>());
+ objRelationshipMap.get(relationship.getSourceEntity()).add(relationship);
}
}
}
@@ -132,17 +117,11 @@ public class RemoveUndoableEdit extends CayenneUndoableEdit {
this.mode = REMOVE_MODE.DB_ENTITY;
for (ObjEntity objEnt : map.getObjEntities()) {
- for (Relationship rel : objEnt.getRelationships()) {
- for (DbRelationship dbRel : ((ObjRelationship) rel).getDbRelationships()) {
+ for (ObjRelationship rel : objEnt.getRelationships()) {
+ for (DbRelationship dbRel : rel.getDbRelationships()) {
if (dbRel.getTargetEntity() == dbEntity) {
-
- if (dbRelationshipMap.get(dbRel.getSourceEntity()) == null) {
- dbRelationshipMap.put(
- (DbEntity) dbRel.getSourceEntity(),
- new LinkedList<DbRelationship>());
- }
+ dbRelationshipMap.computeIfAbsent(dbRel.getSourceEntity(), k -> new LinkedList<>());
dbRelationshipMap.get(dbRel.getSourceEntity()).add(dbRel);
-
break;
}
}
@@ -230,103 +209,68 @@ public class RemoveUndoableEdit extends CayenneUndoableEdit {
@Override
public void undo() throws CannotUndoException {
- CreateRelationshipAction relationshipAction = actionManager
- .getAction(CreateRelationshipAction.class);
+ CreateRelationshipAction relationshipAction = actionManager.getAction(CreateRelationshipAction.class);
switch (this.mode) {
case OBJECT_ENTITY: {
- for (Entry<ObjEntity, List<ObjRelationship>> entry : objRelationshipMap
- .entrySet()) {
-
+ for (Entry<ObjEntity, List<ObjRelationship>> entry : objRelationshipMap.entrySet()) {
ObjEntity objEntity = entry.getKey();
for (ObjRelationship rel : entry.getValue()) {
relationshipAction.createObjRelationship(objEntity, rel);
}
}
-
- CreateObjEntityAction action = actionManager
- .getAction(CreateObjEntityAction.class);
+ CreateObjEntityAction action = actionManager.getAction(CreateObjEntityAction.class);
action.createObjEntity(map, objEntity);
-
break;
}
case DB_ENTITY: {
-
- for (Entry<DbEntity, List<DbRelationship>> entry : dbRelationshipMap
- .entrySet()) {
+ for (Entry<DbEntity, List<DbRelationship>> entry : dbRelationshipMap.entrySet()) {
DbEntity dbEntity = entry.getKey();
for (DbRelationship rel : entry.getValue()) {
relationshipAction.createDbRelationship(dbEntity, rel);
}
}
-
- CreateDbEntityAction action = actionManager
- .getAction(CreateDbEntityAction.class);
-
+ CreateDbEntityAction action = actionManager.getAction(CreateDbEntityAction.class);
action.createEntity(map, dbEntity);
-
break;
}
case QUERY: {
-
this.domain = (DataChannelDescriptor) Application
.getInstance()
.getFrameController()
.getProjectController()
.getProject()
.getRootNode();
-
- CreateQueryAction action = actionManager
- .getAction(CreateQueryAction.class);
-
+ CreateQueryAction action = actionManager.getAction(CreateQueryAction.class);
action.createQuery(domain, map, query);
-
break;
}
case PROCEDURE: {
- CreateProcedureAction action = actionManager
- .getAction(CreateProcedureAction.class);
+ CreateProcedureAction action = actionManager.getAction(CreateProcedureAction.class);
action.createProcedure(map, procedure);
break;
}
case MAP_FROM_NODE: {
this.dataNode.getDataMapNames().add(map.getName());
-
+ ProjectController controller = Application.getInstance().getFrameController().getProjectController();
DataNodeEvent e = new DataNodeEvent(Application.getFrame(), this.dataNode);
-
- ProjectController controller = Application
- .getInstance()
- .getFrameController()
- .getProjectController();
-
- e
- .setDomain((DataChannelDescriptor) controller
- .getProject()
- .getRootNode());
-
+ e.setDomain((DataChannelDescriptor) controller.getProject().getRootNode());
controller.fireDataNodeEvent(e);
-
break;
}
case MAP_FROM_DOMAIN: {
- CreateDataMapAction action = actionManager
- .getAction(CreateDataMapAction.class);
+ CreateDataMapAction action = actionManager.getAction(CreateDataMapAction.class);
action.createDataMap(map);
-
break;
}
case NODE: {
CreateNodeAction action = actionManager.getAction(CreateNodeAction.class);
action.createDataNode(dataNode);
-
break;
}
-
case EMBEDDABLE: {
- CreateEmbeddableAction action = actionManager
- .getAction(CreateEmbeddableAction.class);
+ CreateEmbeddableAction action = actionManager.getAction(CreateEmbeddableAction.class);
action.createEmbeddable(map, embeddable);
-
break;
}
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneAction.java
index 3098fecba..deca27abf 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneAction.java
@@ -321,7 +321,7 @@ public abstract class CayenneAction extends AbstractAction {
* @param entity to build path for
* @return tree path
*/
- protected static TreePath buildTreePath(Entity entity) {
+ protected static TreePath buildTreePath(Entity<?,?,?> entity) {
DataChannelDescriptor domain = (DataChannelDescriptor) Application
.getInstance()
.getProject()
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTableModel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTableModel.java
index cb984daae..f5960b76a 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTableModel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTableModel.java
@@ -43,13 +43,12 @@ import org.slf4j.LoggerFactory;
* Superclass of CayenneModeler table model classes.
*/
public abstract class CayenneTableModel<T> extends AbstractTableModel {
+ private static final Logger logObj = LoggerFactory.getLogger(CayenneTableModel.class);
protected ProjectController mediator;
protected Object eventSource;
protected List<T> objectList;
- private static Logger logObj = LoggerFactory.getLogger(CayenneTableModel.class);
-
/**
* Constructor for CayenneTableModel.
*/
@@ -188,11 +187,11 @@ public abstract class CayenneTableModel<T> extends AbstractTableModel {
return true;
}
- protected class PropertyComparator<C> implements Comparator<C> {
+ protected static class PropertyComparator<C> implements Comparator<C> {
Method getter;
- PropertyComparator(String propertyName, Class beanClass) {
+ PropertyComparator(String propertyName, Class<?> beanClass) {
try {
getter = findGetter(beanClass, propertyName);
} catch (IntrospectionException e) {
@@ -200,7 +199,7 @@ public abstract class CayenneTableModel<T> extends AbstractTableModel {
}
}
- Method findGetter(Class beanClass, String propertyName) throws IntrospectionException {
+ Method findGetter(Class<?> beanClass, String propertyName) throws IntrospectionException {
BeanInfo info = Introspector.getBeanInfo(beanClass);
PropertyDescriptor[] descriptors = info.getPropertyDescriptors();
@@ -216,7 +215,7 @@ public abstract class CayenneTableModel<T> extends AbstractTableModel {
@SuppressWarnings("unchecked")
public int compare(C o1, C o2) {
- if ((o1 == null && o2 == null) || o1 == o2) {
+ if (o1 == o2) {
return 0;
} else if (o1 == null) {
return -1;
@@ -239,7 +238,7 @@ public abstract class CayenneTableModel<T> extends AbstractTableModel {
public abstract boolean isColumnSortable(int sortCol);
public void sortByElementProperty(String string, boolean isAscent) {
- Collections.sort(objectList, new PropertyComparator<>(string, getElementsClass()));
+ objectList.sort(new PropertyComparator<>(string, getElementsClass()));
if(!isAscent){
Collections.reverse(objectList);
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
index fff3d219e..7c37e9b71 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CellRenderers.java
@@ -69,7 +69,6 @@ public final class CellRenderers {
protected static Icon embeddableIcon = ModelerUtil.buildIcon("icon-embeddable.png");
protected static Icon relationshipIcon = ModelerUtil.buildIcon("icon-relationship.png");
protected static Icon attributeIcon = ModelerUtil.buildIcon("icon-attribute.png");
-
protected static Font defaultFont = UIManager.getFont("Label.font");
public static Icon iconForObject(Object object) {
@@ -160,7 +159,7 @@ public final class CellRenderers {
String label = mapObject.getName();
if (mapObject instanceof Entity) {
- Entity entity = (Entity) mapObject;
+ Entity<?,?,?> entity = (Entity<?,?,?>) mapObject;
// for different namespace display its name
DataMap dataMap = entity.getDataMap();
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAttributePathComboBoxEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAttributePathComboBoxEditor.java
index 278a8aa4a..a2ec259e1 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAttributePathComboBoxEditor.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbAttributePathComboBoxEditor.java
@@ -22,7 +22,6 @@ package org.apache.cayenne.modeler.util;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.ObjAttribute;
import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.modeler.editor.ObjAttributeTableModel;
@@ -40,7 +39,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;
-public class DbAttributePathComboBoxEditor extends PathChooserComboBoxCellEditor {
+public class DbAttributePathComboBoxEditor extends PathChooserComboBoxCellEditor<ObjAttributeTableModel> {
private static final int DB_ATTRIBUTE_PATH_COLUMN = ObjAttributeTableModel.DB_ATTRIBUTE;
@@ -68,21 +67,21 @@ public class DbAttributePathComboBoxEditor extends PathChooserComboBoxCellEditor
}
@Override
- protected void initializeCombo(CayenneTableModel model, int row, final JTable table) {
+ protected void initializeCombo(ObjAttributeTableModel model, int row, final JTable table) {
super.initializeCombo(model, row, table);
- comboBoxPathChooser.setSelectedItem(((ObjAttributeTableModel) model).getAttribute(row).getValue().getDbAttributePath());
+ comboBoxPathChooser.setSelectedItem(model.getAttribute(row).getValue().getDbAttributePath());
savePath = this.model.getAttribute(row).getValue().getDbAttributePath();
}
@Override
- protected Object getCurrentNodeToInitializeCombo(CayenneTableModel model, int row) {
+ protected Object getCurrentNodeToInitializeCombo(ObjAttributeTableModel model, int row) {
return getCurrentNode(getPathToInitializeCombo(model, row));
}
@Override
- protected String getPathToInitializeCombo(CayenneTableModel model, int row) {
- String pathString = ((ObjAttributeTableModel) model).getAttribute(row).getValue().getDbAttributePath();
+ protected String getPathToInitializeCombo(ObjAttributeTableModel model, int row) {
+ String pathString = model.getAttribute(row).getValue().getDbAttributePath();
if (pathString == null) {
return "";
}
@@ -121,7 +120,7 @@ public class DbAttributePathComboBoxEditor extends PathChooserComboBoxCellEditor
getEditor().getEditorComponent()).setText(dbAttributePath);
}
List<String> currentNodeChildren = new ArrayList<>(getChildren(getCurrentNode(dbAttributePath), dbAttributePath));
- comboBoxPathChooser.setModel(new DefaultComboBoxModel(currentNodeChildren.toArray()));
+ comboBoxPathChooser.setModel(new DefaultComboBoxModel<>(currentNodeChildren.toArray(new String[0])));
comboBoxPathChooser.setSelectedItem(dbAttributePath);
comboBoxPathChooser.showPopup();
comboBoxPathChooser.setPopupVisible(true);
@@ -131,7 +130,7 @@ public class DbAttributePathComboBoxEditor extends PathChooserComboBoxCellEditor
@Override
protected EntityTreeModel createTreeModelForComboBox(int attributeIndexInTable) {
ObjAttribute attribute = model.getAttribute(attributeIndexInTable).getValue();
- Entity firstEntity = null;
+ DbEntity firstEntity = null;
if (attribute.getDbAttribute() == null) {
if (attribute.getParent() instanceof ObjEntity) {
@@ -162,9 +161,9 @@ public class DbAttributePathComboBoxEditor extends PathChooserComboBoxCellEditor
return null;
}
- private Entity getFirstEntity(ObjAttribute attribute) {
+ private DbEntity getFirstEntity(ObjAttribute attribute) {
Iterator<CayenneMapEntry> it = attribute.getDbPathIterator();
- Entity firstEnt = attribute.getDbAttribute().getEntity();
+ DbEntity firstEnt = attribute.getDbAttribute().getEntity();
boolean setEnt = false;
while (it.hasNext()) {
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
index 7b4618d0b..99f77cae0 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DbRelationshipPathComboBoxEditor.java
@@ -35,7 +35,7 @@ import java.awt.event.FocusListener;
import java.util.Collection;
import java.util.regex.Pattern;
-public class DbRelationshipPathComboBoxEditor extends PathChooserComboBoxCellEditor implements FocusListener {
+public class DbRelationshipPathComboBoxEditor extends PathChooserComboBoxCellEditor<ObjRelationshipTableModel> implements FocusListener {
private static final int REL_TARGET_PATH_COLUMN = 2;
private static int enterPressedCount = 0;
@@ -66,9 +66,9 @@ public class DbRelationshipPathComboBoxEditor extends PathChooserComboBoxCellEdi
}
@Override
- protected void initializeCombo(CayenneTableModel model, int row, final JTable table) {
+ protected void initializeCombo(ObjRelationshipTableModel model, int row, final JTable table) {
super.initializeCombo(model, row, table);
- comboBoxPathChooser.setSelectedItem(((ObjRelationshipTableModel) model).getRelationship(row).getDbRelationshipPath());
+ comboBoxPathChooser.setSelectedItem(model.getRelationship(row).getDbRelationshipPath());
enterPressedCount = 0;
comboBoxPathChooser.setToolTipText("To choose relationship press enter two times.To choose next relationship press dot.");
@@ -143,13 +143,13 @@ public class DbRelationshipPathComboBoxEditor extends PathChooserComboBoxCellEdi
}
@Override
- protected Object getCurrentNodeToInitializeCombo(CayenneTableModel model, int row) {
+ protected Object getCurrentNodeToInitializeCombo(ObjRelationshipTableModel model, int row) {
return getCurrentNode(getPathToInitializeCombo(model, row));
}
@Override
- protected String getPathToInitializeCombo(CayenneTableModel model, int row) {
- String pathString = ((ObjRelationshipTableModel) model).getRelationship(row).getDbRelationshipPath();
+ protected String getPathToInitializeCombo(ObjRelationshipTableModel model, int row) {
+ String pathString = model.getRelationship(row).getDbRelationshipPath();
if (pathString == null) {
return "";
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeAttributeRelationshipFilter.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeAttributeRelationshipFilter.java
index e11b49e44..315f2f280 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeAttributeRelationshipFilter.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeAttributeRelationshipFilter.java
@@ -25,19 +25,16 @@ import org.apache.cayenne.map.Relationship;
public class EntityTreeAttributeRelationshipFilter implements EntityTreeFilter {
- public boolean attributeMatch(Object node, Attribute attr) {
- if (!(node instanceof Attribute)) {
- return true;
- }
- return false;
+ public boolean attributeMatch(Object node, Attribute<?,?,?> attr) {
+ return !(node instanceof Attribute);
}
- public boolean relationshipMatch(Object node, Relationship rel) {
+ public boolean relationshipMatch(Object node, Relationship<?,?,?> rel) {
if (!(node instanceof Relationship)) {
return true;
}
- /**
+ /*
* We do not allow A->B->A chains, where relationships
* are to-one
*/
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java
index 1371f5316..6f25b1ef7 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeFilter.java
@@ -29,10 +29,10 @@ public interface EntityTreeFilter {
/**
* Checks if attribute should appear in the tree
*/
- boolean attributeMatch(Object node, Attribute attr);
+ boolean attributeMatch(Object node, Attribute<?,?,?> attr);
/**
* Checks if relationship should appear in the tree
*/
- boolean relationshipMatch(Object node, Relationship rel);
+ boolean relationshipMatch(Object node, Relationship<?,?,?> rel);
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeRelationshipFilter.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeRelationshipFilter.java
index 1d5e5f240..988fcc44e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeRelationshipFilter.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/EntityTreeRelationshipFilter.java
@@ -25,17 +25,17 @@ import org.apache.cayenne.map.Relationship;
public class EntityTreeRelationshipFilter implements EntityTreeFilter {
- public boolean attributeMatch(Object node, Attribute attr) {
+ public boolean attributeMatch(Object node, Attribute<?,?,?> attr) {
// attrs not allowed here
return false;
}
- public boolean relationshipMatch(Object node, Relationship rel) {
+ public boolean relationshipMatch(Object node, Relationship<?,?,?> rel) {
if (!(node instanceof Relationship)) {
return true;
}
- /**
+ /*
* We do not allow A->B->A chains, where relationships are
* to-one
*/
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/PathChooserComboBoxCellEditor.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/PathChooserComboBoxCellEditor.java
index 4f05f6162..3c9faef55 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/PathChooserComboBoxCellEditor.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/PathChooserComboBoxCellEditor.java
@@ -54,8 +54,7 @@ import java.util.regex.Pattern;
* This class used as cell editor, when you need to
* choose path in comboBox and use autocompletion.
*/
-@SuppressWarnings("WeakerAccess")
-public abstract class PathChooserComboBoxCellEditor extends AbstractCellEditor implements TableCellEditor, ActionListener, PopupMenuListener {
+public abstract class PathChooserComboBoxCellEditor<T extends CayenneTableModel<?>> extends AbstractCellEditor implements TableCellEditor, ActionListener, PopupMenuListener {
protected JComboBox<String> comboBoxPathChooser;
protected int previousEmbeddedLevel = 0;
@@ -67,11 +66,11 @@ public abstract class PathChooserComboBoxCellEditor extends AbstractCellEditor i
protected abstract EntityTreeModel createTreeModelForComboBox(int indexInTable);
- protected abstract Object getCurrentNodeToInitializeCombo(CayenneTableModel model, int row);
+ protected abstract Object getCurrentNodeToInitializeCombo(T model, int row);
- protected abstract String getPathToInitializeCombo(CayenneTableModel model, int row);
+ protected abstract String getPathToInitializeCombo(T model, int row);
- protected void initializeCombo(CayenneTableModel model, int row, final JTable table) {
+ protected void initializeCombo(T model, int row, final JTable table) {
Object currentNode = getCurrentNodeToInitializeCombo(model, row);
String dbAttributePath = getPathToInitializeCombo(model, row);
List<String> nodeChildren = getChildren(currentNode, dbAttributePath);
@@ -240,7 +239,6 @@ public abstract class PathChooserComboBoxCellEditor extends AbstractCellEditor i
private final ImageIcon rightArrow = ModelerUtil.buildIcon("icon-arrow-closed.png");
- @SuppressWarnings("unchecked")
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index,
boolean isSelected, boolean cellHasFocus) {
@@ -251,7 +249,7 @@ public abstract class PathChooserComboBoxCellEditor extends AbstractCellEditor i
Object currentNode = getCurrentNode((String) value);
if (treeModel.isLeaf(currentNode)) {
- ListCellRenderer leafRenderer = CellRenderers.listRenderer();
+ ListCellRenderer<Object> leafRenderer = CellRenderers.listRenderer();
return leafRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
} else {
DefaultListCellRenderer nonLeafTextRenderer = new DefaultListCellRenderer();
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ProjectUtil.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ProjectUtil.java
index d77441570..d9109b643 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ProjectUtil.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/ProjectUtil.java
@@ -26,7 +26,6 @@ import java.util.List;
import org.apache.cayenne.configuration.DataChannelDescriptor;
import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.map.Attribute;
import org.apache.cayenne.map.DataMap;
import org.apache.cayenne.map.DbAttribute;
import org.apache.cayenne.map.DbEntity;
@@ -34,7 +33,6 @@ import org.apache.cayenne.map.DbJoin;
import org.apache.cayenne.map.DbRelationship;
import org.apache.cayenne.map.Embeddable;
import org.apache.cayenne.map.EmbeddableAttribute;
-import org.apache.cayenne.map.Entity;
import org.apache.cayenne.map.EntityResolver;
import org.apache.cayenne.map.MappingNamespace;
import org.apache.cayenne.map.ObjAttribute;
@@ -43,7 +41,6 @@ import org.apache.cayenne.map.ObjRelationship;
import org.apache.cayenne.map.Procedure;
import org.apache.cayenne.map.ProcedureParameter;
import org.apache.cayenne.map.QueryDescriptor;
-import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.modeler.ProjectController;
import org.apache.cayenne.util.Util;
@@ -73,7 +70,7 @@ public class ProjectUtil {
String oldName = map.getName();
// must fully relink renamed map
- List<DataNodeDescriptor> nodes = new ArrayList<DataNodeDescriptor>();
+ List<DataNodeDescriptor> nodes = new ArrayList<>();
for (DataNodeDescriptor node : domain.getNodeDescriptors())
if (node.getDataMapNames().contains(map.getName()))
nodes.add(node);
@@ -180,11 +177,11 @@ public class ProjectUtil {
/**
* Changes the name of the attribute and all references to this attribute.
*/
- public static void setAttributeName(Attribute attribute, String newName) {
+ public static void setAttributeName(ObjAttribute attribute, String newName) {
String oldName = attribute.getName();
attribute.setName(newName);
- Entity entity = attribute.getEntity();
+ ObjEntity entity = attribute.getEntity();
if (entity != null) {
entity.removeAttribute(oldName);
@@ -211,8 +208,8 @@ public class ProjectUtil {
/**
* Adds or changes the name of the attribute in all places in DataMap.
*/
- public static void setRelationshipName(Entity entity, Relationship rel, String newName) {
- Relationship existingRelationship = entity.getRelationship(newName);
+ public static void setRelationshipName(ObjEntity entity, ObjRelationship rel, String newName) {
+ ObjRelationship existingRelationship = entity.getRelationship(newName);
if (existingRelationship != null && existingRelationship != rel) {
throw new IllegalArgumentException("An attempt to override relationship '" + rel.getName() + "'");
}
@@ -269,10 +266,10 @@ public class ProjectUtil {
// check individual relationships
for (ObjRelationship rel : entity.getRelationships()) {
- List<DbRelationship> dbRelList = new ArrayList<DbRelationship>(rel
+ List<DbRelationship> dbRelList = new ArrayList<>(rel
.getDbRelationships());
for (DbRelationship dbRel : dbRelList) {
- Entity srcEnt = dbRel.getSourceEntity();
+ DbEntity srcEnt = dbRel.getSourceEntity();
if (srcEnt == null
|| map.getDbEntity(srcEnt.getName()) != srcEnt
|| srcEnt.getRelationship(dbRel.getName()) != dbRel) {
@@ -375,18 +372,15 @@ public class ProjectUtil {
/**
* Returns a collection of DbRelationships that use this attribute as a source.
*/
- public static Collection<DbRelationship> getRelationshipsUsingAttributeAsSource(
- DbAttribute attribute) {
- Entity parent = attribute.getEntity();
+ public static Collection<DbRelationship> getRelationshipsUsingAttributeAsSource(DbAttribute attribute) {
+ DbEntity parent = attribute.getEntity();
if (parent == null) {
return Collections.emptyList();
}
- Collection<DbRelationship> parentRelationships = (Collection<DbRelationship>) parent
- .getRelationships();
- Collection<DbRelationship> relationships = new ArrayList<DbRelationship>(
- parentRelationships.size());
+ Collection<DbRelationship> parentRelationships = parent.getRelationships();
+ Collection<DbRelationship> relationships = new ArrayList<>(parentRelationships.size());
// Iterator it = parentRelationships.iterator();
// while (it.hasNext()) {
// DbRelationship relationship = (DbRelationship) it.next();
@@ -403,7 +397,7 @@ public class ProjectUtil {
*/
public static Collection<DbRelationship> getRelationshipsUsingAttributeAsTarget(
DbAttribute attribute) {
- Entity parent = attribute.getEntity();
+ DbEntity parent = attribute.getEntity();
if (parent == null) {
return Collections.emptyList();
@@ -414,16 +408,13 @@ public class ProjectUtil {
return Collections.emptyList();
}
- Collection<DbRelationship> relationships = new ArrayList<DbRelationship>();
-
- for (Entity entity : map.getDbEntities()) {
+ Collection<DbRelationship> relationships = new ArrayList<>();
+ for (DbEntity entity : map.getDbEntities()) {
if (entity == parent) {
continue;
}
- Collection<DbRelationship> entityRelationships = (Collection<DbRelationship>) entity
- .getRelationships();
-
+ Collection<DbRelationship> entityRelationships = entity.getRelationships();
for (DbRelationship relationship : entityRelationships) {
if (ProjectUtil.containsTargetAttribute(relationship, attribute)) {
relationships.add(relationship);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/AttributeDisplayEventType.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/AttributeDisplayEventType.java
index dde7bc5b7..841ed213e 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/AttributeDisplayEventType.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/AttributeDisplayEventType.java
@@ -52,12 +52,12 @@ class AttributeDisplayEventType extends EntityDisplayEventType {
return;
}
- Entity entity = getLastEntity(dataMap);
+ Entity<?,?,?> entity = getLastEntity(dataMap);
if (entity == null) {
return;
}
- Attribute[] attributes = getLastEntityAttributes(entity);
+ Attribute<?,?,?>[] attributes = getLastEntityAttributes(entity);
EntityDisplayEvent entityDisplayEvent = new EntityDisplayEvent(this, entity, dataMap, dataNode, dataChannel);
AttributeDisplayEvent attributeDisplayEvent = new AttributeDisplayEvent(this, attributes, entity, dataMap, dataChannel);
@@ -89,12 +89,12 @@ class AttributeDisplayEventType extends EntityDisplayEventType {
}
}
- protected Attribute[] getLastEntityAttributes(Entity entity) {
- List<Attribute> attributeList = new ArrayList<>();
+ protected Attribute<?,?,?>[] getLastEntityAttributes(Entity<?,?,?> entity) {
+ List<Attribute<?,?,?>> attributeList = new ArrayList<>();
String attrs = (entity instanceof ObjEntity) ? preferences.getObjAttrs() : preferences.getDbAttrs();
for (String attrName : attrs.split(",")) {
- Attribute attr = entity.getAttribute(attrName);
+ Attribute<?,?,?> attr = entity.getAttribute(attrName);
if(attr != null) {
attributeList.add(attr);
}
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/EntityDisplayEventType.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/EntityDisplayEventType.java
index 4c892b439..d1c7b9c02 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/EntityDisplayEventType.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/EntityDisplayEventType.java
@@ -47,7 +47,7 @@ class EntityDisplayEventType extends DisplayEventType {
return;
}
- Entity entity = getLastEntity(dataMap);
+ Entity<?,?,?> entity = getLastEntity(dataMap);
if (entity == null) {
return;
}
@@ -76,7 +76,7 @@ class EntityDisplayEventType extends DisplayEventType {
}
}
- Entity getLastEntity(DataMap dataMap) {
+ Entity<?,?,?> getLastEntity(DataMap dataMap) {
return !preferences.getObjEntity().isEmpty()
? dataMap.getObjEntity(preferences.getObjEntity())
: dataMap.getDbEntity(preferences.getDbEntity());
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/RelationshipDisplayEventType.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/RelationshipDisplayEventType.java
index ec43dd6f8..e71d64959 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/RelationshipDisplayEventType.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/state/RelationshipDisplayEventType.java
@@ -52,12 +52,12 @@ class RelationshipDisplayEventType extends EntityDisplayEventType {
return;
}
- Entity entity = getLastEntity(dataMap);
+ Entity<?,?,?> entity = getLastEntity(dataMap);
if (entity == null) {
return;
}
- Relationship[] relationships = getLastEntityRelationships(entity);
+ Relationship<?,?,?>[] relationships = getLastEntityRelationships(entity);
EntityDisplayEvent entityDisplayEvent = new EntityDisplayEvent(this, entity, dataMap, dataNode, dataChannel);
RelationshipDisplayEvent displayEvent = new RelationshipDisplayEvent(this, relationships, entity, dataMap, dataChannel);
@@ -89,12 +89,12 @@ class RelationshipDisplayEventType extends EntityDisplayEventType {
}
}
- private Relationship[] getLastEntityRelationships(Entity entity) {
- List<Relationship> relationshipList = new ArrayList<>();
+ private Relationship<?,?,?>[] getLastEntityRelationships(Entity<?,?,?> entity) {
+ List<Relationship<?,?,?>> relationshipList = new ArrayList<>();
String rels = (entity instanceof ObjEntity) ? preferences.getObjRels() : preferences.getDbRels();
for (String objRelName : rels.split(",")) {
- Relationship rel = entity.getRelationship(objRelName);
+ Relationship<?,?,?> rel = entity.getRelationship(objRelName);
if(rel != null) {
relationshipList.add(rel);
}
diff --git a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/AttributeEventTest.java b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/AttributeEventTest.java
index 46a04a1e4..19603fd8a 100644
--- a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/AttributeEventTest.java
+++ b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/AttributeEventTest.java
@@ -31,9 +31,9 @@ import static org.junit.Assert.assertSame;
public class AttributeEventTest {
@Test
- public void testAttribute() throws Exception {
+ public void testAttribute() {
Object src = new Object();
- Attribute a = new DbAttribute();
+ DbAttribute a = new DbAttribute();
a.setName("xyz");
AttributeEvent e = new AttributeEvent(src, null, null);
diff --git a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/EntityEventTest.java b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/EntityEventTest.java
index 7af37d997..f083f565d 100644
--- a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/EntityEventTest.java
+++ b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/EntityEventTest.java
@@ -34,9 +34,9 @@ import static org.junit.Assert.assertTrue;
public class EntityEventTest {
@Test
- public void testConstructor1() throws Exception {
+ public void testConstructor1() {
Object src = new Object();
- Entity d = new DbEntity("abc");
+ DbEntity d = new DbEntity("abc");
EntityEvent e = new EntityEvent(src, d);
assertSame(src, e.getSource());
@@ -44,9 +44,9 @@ public class EntityEventTest {
}
@Test
- public void testConstructor2() throws Exception {
+ public void testConstructor2() {
Object src = new Object();
- Entity d = new DbEntity("abc");
+ DbEntity d = new DbEntity("abc");
EntityEvent e = new EntityEvent(src, d, "oldname");
assertSame(src, e.getSource());
@@ -55,9 +55,9 @@ public class EntityEventTest {
}
@Test
- public void testEntity() throws Exception {
+ public void testEntity() {
Object src = new Object();
- Entity d = new DbEntity("abc");
+ DbEntity d = new DbEntity("abc");
EntityEvent e = new EntityEvent(src, null);
e.setEntity(d);
@@ -65,16 +65,16 @@ public class EntityEventTest {
}
@Test
- public void testNameChange1() throws Exception {
- Entity d = new DbEntity("abc");
+ public void testNameChange1() {
+ DbEntity d = new DbEntity("abc");
EntityEvent e = new EntityEvent(new Object(), d, "xyz");
assertEquals(d.getName(), e.getNewName());
assertTrue(e.isNameChange());
}
@Test
- public void testNameChange2() throws Exception {
- Entity d = new DbEntity("abc");
+ public void testNameChange2() {
+ DbEntity d = new DbEntity("abc");
EntityEvent e = new EntityEvent(new Object(), d, "abc");
assertEquals(d.getName(), e.getNewName());
assertFalse(e.isNameChange());
diff --git a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/RelationshipEventTest.java b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/RelationshipEventTest.java
index 054168346..73f306e07 100644
--- a/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/RelationshipEventTest.java
+++ b/modeler/cayenne-modeler/src/test/java/org/apache/cayenne/modeler/event/RelationshipEventTest.java
@@ -20,7 +20,6 @@
package org.apache.cayenne.modeler.event;
import org.apache.cayenne.map.DbRelationship;
-import org.apache.cayenne.map.Relationship;
import org.apache.cayenne.map.event.RelationshipEvent;
import org.junit.Test;
@@ -31,9 +30,9 @@ import static org.junit.Assert.assertSame;
public class RelationshipEventTest {
@Test
- public void testRelationship() throws Exception {
+ public void testRelationship() {
Object src = new Object();
- Relationship r = new DbRelationship();
+ DbRelationship r = new DbRelationship();
r.setName("xyz");
RelationshipEvent e = new RelationshipEvent(src, null, null);
diff --git a/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/EOQuery.java b/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/EOQuery.java
index f0be24746..661aadb3e 100644
--- a/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/EOQuery.java
+++ b/modeler/cayenne-wocompat/src/main/java/org/apache/cayenne/wocompat/EOQuery.java
@@ -36,7 +36,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -48,10 +47,11 @@ import java.util.Map;
* @since 1.1
* @since 4.3 this query extends {@link ObjectSelect}
*/
+@SuppressWarnings("unchecked")
public class EOQuery<T> extends ObjectSelect<T> {
protected Map<String, ?> plistMap;
- protected Map bindings;
+ protected Map<String, String> bindings;
public EOQuery(ObjEntity root, Map<String, ?> plistMap) {
super();
@@ -99,11 +99,10 @@ public class EOQuery<T> extends ObjectSelect<T> {
}
// prefetches
- List prefetches = (List) plistMap.get("prefetchingRelationshipKeyPaths");
+ List<?> prefetches = (List<?>) plistMap.get("prefetchingRelationshipKeyPaths");
if (prefetches != null && !prefetches.isEmpty()) {
- Iterator it = prefetches.iterator();
- while (it.hasNext()) {
- prefetch((String) it.next(), PrefetchTreeNode.UNDEFINED_SEMANTICS);
+ for (Object prefetch : prefetches) {
+ prefetch((String) prefetch, PrefetchTreeNode.UNDEFINED_SEMANTICS);
}
}
@@ -115,7 +114,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
}
}
- public Collection getBindingNames() {
+ public Collection<String> getBindingNames() {
if (bindings == null) {
initBindings();
}
@@ -128,7 +127,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
initBindings();
}
- return (String) bindings.get(name);
+ return bindings.get(name);
}
private synchronized void initBindings() {
@@ -136,17 +135,17 @@ public class EOQuery<T> extends ObjectSelect<T> {
return;
}
- bindings = new HashMap();
+ bindings = new HashMap<>();
if (!(root instanceof Entity)) {
return;
}
- Map qualifier = (Map) plistMap.get("qualifier");
- initBindings(bindings, (Entity) root, qualifier);
+ Map<String, ?> qualifier = (Map<String, ?>) plistMap.get("qualifier");
+ initBindings(bindings, (Entity<?,?,?>) root, qualifier);
}
- private void initBindings(Map bindings, Entity entity, Map qualifier) {
+ private void initBindings(Map<String,String> bindings, Entity<?,?,?> entity, Map<String, ?> qualifier) {
if (qualifier == null) {
return;
}
@@ -162,7 +161,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
return;
}
- Map valueMap = (Map) value;
+ Map<String, ?> valueMap = (Map<String, ?>) value;
if (!"EOQualifierVariable".equals(valueMap.get("class")) || !valueMap.containsKey("_key")) {
return;
}
@@ -200,11 +199,10 @@ public class EOQuery<T> extends ObjectSelect<T> {
return;
}
- List children = (List) qualifier.get("qualifiers");
+ List<Map<String, ?>> children = (List<Map<String, ?>>) qualifier.get("qualifiers");
if (children != null) {
- Iterator it = children.iterator();
- while (it.hasNext()) {
- initBindings(bindings, entity, (Map) it.next());
+ for (Map<String, ?> child : children) {
+ initBindings(bindings, entity, child);
}
}
}
@@ -300,7 +298,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
* @return boolean indicating whether the qualifier is "aggregate"
* qualifier
*/
- static boolean isAggregate(Map qualifier) {
+ static boolean isAggregate(Map<String, ?> qualifier) {
boolean result = true;
String theClass = (String) qualifier.get("class");
@@ -324,7 +322,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
* - a Map containing the qualifier settings to examine.
* @return int Expression type
*/
- static int expressionTypeForQualifier(Map qualifierMap) {
+ static int expressionTypeForQualifier(Map<String, ?> qualifierMap) {
// get selector
String selector = (String) qualifierMap.get("selectorName");
return expressionTypeForSelector(selector);
@@ -341,7 +339,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
*/
static int expressionTypeForSelector(String selector) {
Integer expType = selectorToExpressionBridge().get(selector);
- return (expType != null ? expType.intValue() : -1);
+ return (expType != null ? expType : -1);
}
/**
@@ -353,7 +351,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
* - containing the qualifier to examine
* @return int aggregate Expression type
*/
- static int aggregateExpressionClassForQualifier(Map qualifierMap) {
+ static int aggregateExpressionClassForQualifier(Map<String, ?> qualifierMap) {
String qualifierClass = (String) qualifierMap.get("class");
if (qualifierClass != null) {
if (qualifierClass.equalsIgnoreCase("EOAndQualifier")) {
@@ -377,7 +375,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
* - Map representation of EOFetchSpecification
* @return Expression translation of the EOFetchSpecification
*/
- static Expression makeQualifier(EOObjEntity entity, Map qualifierMap) {
+ static Expression makeQualifier(EOObjEntity entity, Map<String, ?> qualifierMap) {
if (isAggregate(qualifierMap)) {
// the fetch specification has more than one qualifier
int aggregateClass = aggregateExpressionClassForQualifier(qualifierMap); // AND,
@@ -387,7 +385,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
if (aggregateClass == Expression.NOT) {
// NOT qualifiers only have one child, keyed with
// "qualifier"
- Map child = (Map) qualifierMap.get("qualifier");
+ Map<String, ?> child = (Map<String, ?>) qualifierMap.get("qualifier");
// build the child expression
Expression childExp = makeQualifier(entity, child);
@@ -398,13 +396,12 @@ public class EOQuery<T> extends ObjectSelect<T> {
// AND, OR qualifiers can have multiple children, keyed with
// "qualifiers"
// get the list of children
- List children = (List) qualifierMap.get("qualifiers");
+ List<Map<String, ?>> children = (List<Map<String, ?>>) qualifierMap.get("qualifiers");
if (children != null) {
ArrayList<Expression> childExpressions = new ArrayList<>();
// build an Expression for each child
- Iterator<Map> it = children.iterator();
- while (it.hasNext()) {
- Expression childExp = makeQualifier(entity, it.next());
+ for (Map<String, ?> child : children) {
+ Expression childExp = makeQualifier(entity, child);
childExpressions.add(childExp);
}
// join the child expressions and return the result
@@ -429,10 +426,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
// Comparing two keys or key paths
key = (String) qualifierMap.get("leftValue");
comparisonValue = qualifierMap.get("rightValue");
-
- // FIXME: I think EOKeyComparisonQualifier sytle Expressions are
- // not
- // supported...
+ // FIXME: I think EOKeyComparisonQualifier style Expressions are not supported...
return null;
} else if ("EOKeyValueQualifier".equals(qualifierClass)) {
// Comparing key with a value or parameterized value
@@ -442,9 +436,7 @@ public class EOQuery<T> extends ObjectSelect<T> {
if (value instanceof Map) {
Map<String, String> valueMap = (Map<String, String>) value;
String objClass = valueMap.get("class"); // can be a
- // qualifier class
- // or java type
-
+ // qualifier class or java type
if ("EOQualifierVariable".equals(objClass) && valueMap.containsKey("_key")) {
// make a parameterized expression
String paramName = valueMap.get("_key");