You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2007/12/02 13:36:47 UTC
svn commit: r600275 -
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java
Author: aadamchik
Date: Sun Dec 2 04:36:47 2007
New Revision: 600275
URL: http://svn.apache.org/viewvc?rev=600275&view=rev
Log:
generics and also logic refactoring to avoid code duplication
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java?rev=600275&r1=600274&r2=600275&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/gen/MapClassGenerator.java Sun Dec 2 04:36:47 2007
@@ -21,6 +21,7 @@
import java.io.Writer;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -37,7 +38,7 @@
* Generates Java source code for ObjEntities in the DataMap. This class is abstract and
* does not deal with filesystem issues directly. Concrete subclasses should provide ways
* to store generated files by implementing {@link #openWriter(ObjEntity, String, String)}
- * and {@link #closeWriter(Writer)}methods.
+ * and {@link #closeWriter(Writer)} methods.
*
* @author Andrus Adamchik
*/
@@ -77,7 +78,7 @@
protected String versionString = DEFAULT_VERSION;
- protected List objEntities;
+ protected List<ObjEntity> objEntities;
protected String superPkg;
protected DataMap dataMap;
protected VPPConfig vppConfig;
@@ -88,7 +89,7 @@
}
public MapClassGenerator(DataMap dataMap) {
- this(dataMap, new ArrayList(dataMap.getObjEntities()));
+ this(dataMap, new ArrayList<ObjEntity>(dataMap.getObjEntities()));
}
/**
@@ -96,7 +97,7 @@
*
* @since 1.2
*/
- public MapClassGenerator(DataMap dataMap, List objEntities) {
+ public MapClassGenerator(DataMap dataMap, List<ObjEntity> objEntities) {
this.dataMap = dataMap;
this.setObjEntities(objEntities);
}
@@ -220,22 +221,7 @@
mainGen.setSuperPrefix(superPrefix);
superGen.setSuperPrefix(superPrefix);
- // Iterate only once if this is datamap mode
- Iterator it = objEntities.iterator();
- if (MODE_ENTITY.equals(mode)) {
- it = objEntities.iterator();
- }
- else {
- if (objEntities.isEmpty()) {
- it = objEntities.iterator();
- }
- else {
- it = Collections.singleton(objEntities.get(0)).iterator();
- }
- }
-
- while (it.hasNext()) {
- ObjEntity ent = (ObjEntity) it.next();
+ for (ObjEntity ent : entitiesForCurrentMode()) {
// 1. do the superclass
initClassGenerator_1_1(superGen, ent, true);
@@ -273,22 +259,7 @@
ClassGenerator.VERSION_1_2,
vppConfig);
- // Iterate only once if this is datamap mode
- Iterator it = objEntities.iterator();
- if (MODE_ENTITY.equals(mode)) {
- it = objEntities.iterator();
- }
- else {
- if (objEntities.isEmpty()) {
- it = objEntities.iterator();
- }
- else {
- it = Collections.singleton(objEntities.get(0)).iterator();
- }
- }
-
- while (it.hasNext()) {
- ObjEntity entity = (ObjEntity) it.next();
+ for (ObjEntity entity : entitiesForCurrentMode()) {
// use client name, and if not specified use regular class name
String fqnSubClass = entity.getClientClassName();
@@ -359,22 +330,7 @@
versionString,
vppConfig);
- // Iterate only once if this is datamap mode
- Iterator it = objEntities.iterator();
- if (MODE_ENTITY.equals(mode)) {
- it = objEntities.iterator();
- }
- else {
- if (objEntities.isEmpty()) {
- it = objEntities.iterator();
- }
- else {
- it = Collections.singleton(objEntities.get(0)).iterator();
- }
- }
-
- while (it.hasNext()) {
- ObjEntity ent = (ObjEntity) it.next();
+ for (ObjEntity ent : entitiesForCurrentMode()) {
String fqnSubClass = ent.getClassName();
String fqnBaseClass = (null != ent.getSuperClassName()) ? ent
@@ -432,22 +388,7 @@
private void generateSingleClasses_1_1(String classTemplate) throws Exception {
ClassGenerator gen = new ClassGenerator(classTemplate, versionString);
- // Iterate only once if this is datamap mode
- Iterator it = objEntities.iterator();
- if (MODE_ENTITY.equals(mode)) {
- it = objEntities.iterator();
- }
- else {
- if (objEntities.isEmpty()) {
- it = objEntities.iterator();
- }
- else {
- it = Collections.singleton(objEntities.get(0)).iterator();
- }
- }
-
- while (it.hasNext()) {
- ObjEntity ent = (ObjEntity) it.next();
+ for (ObjEntity ent : entitiesForCurrentMode()) {
initClassGenerator_1_1(gen.getClassGenerationInfo(), ent, false);
Writer out = openWriter(
@@ -470,22 +411,7 @@
throws Exception {
ClassGenerator gen = new ClassGenerator(classTemplate, versionString, vppConfig);
- // Iterate only once if this is datamap mode
- Iterator it = objEntities.iterator();
- if (MODE_ENTITY.equals(mode)) {
- it = objEntities.iterator();
- }
- else {
- if (objEntities.isEmpty()) {
- it = objEntities.iterator();
- }
- else {
- it = Collections.singleton(objEntities.get(0)).iterator();
- }
- }
-
- while (it.hasNext()) {
- ObjEntity ent = (ObjEntity) it.next();
+ for (ObjEntity ent : entitiesForCurrentMode()) {
String fqnSubClass = ent.getClassName();
String fqnBaseClass = (null != ent.getSuperClassName()) ? ent
@@ -519,6 +445,17 @@
}
}
+ private Collection<ObjEntity> entitiesForCurrentMode() {
+
+ // Iterate only once if this is datamap mode
+ if (!MODE_ENTITY.equals(mode) && !objEntities.isEmpty()) {
+ return Collections.singleton(objEntities.get(0));
+ }
+ else {
+ return this.objEntities;
+ }
+ }
+
/**
* Runs class generation. Produces a single Java class for each ObjEntity in the map.
*/
@@ -633,24 +570,24 @@
this.dataMap = dataMap;
}
- public List getObjEntities() {
+ public List<ObjEntity> getObjEntities() {
return objEntities;
}
/**
* Initializes internal ObjEntities list. This method creates a copy of the provided
- * list to allow its indepdendent modification and also filters out entities that do
+ * list to allow its independent modification and also filters out entities that do
* not require class generation.
*/
- public void setObjEntities(List objEntities) {
+ public void setObjEntities(List<ObjEntity> objEntities) {
this.objEntities = objEntities != null
- ? new ArrayList(objEntities)
- : new ArrayList();
+ ? new ArrayList<ObjEntity>(objEntities)
+ : new ArrayList<ObjEntity>();
// remove generic entities...
- Iterator it = objEntities.iterator();
+ Iterator<ObjEntity> it = objEntities.iterator();
while (it.hasNext()) {
- ObjEntity e = (ObjEntity) it.next();
+ ObjEntity e = it.next();
if (e.isGeneric()) {
it.remove();
}