User: vharcq
Date: 02/06/18 14:10:16
Modified: modules/ejb/src/xdoclet/modules/ejb/entity
PersistentTagsHandler.java PkTagsHandler.java
Log:
Linked to Bug 547633 : Inheritence of ejb:pk-field and wrong data object generation.
No cmplete solution exist, at least we solve the need of havinf to repeat the getId()
in subclasses when all entity beans inherit from a base class witha "GUID" in it.
Revision Changes Path
1.6 +62 -66
xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/PersistentTagsHandler.java
Index: PersistentTagsHandler.java
===================================================================
RCS file:
/cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/PersistentTagsHandler.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -w -r1.5 -r1.6
--- PersistentTagsHandler.java 13 Jun 2002 00:05:22 -0000 1.5
+++ PersistentTagsHandler.java 18 Jun 2002 21:10:15 -0000 1.6
@@ -27,7 +27,7 @@
* @author Ara Abrahamian ([EMAIL PROTECTED])
* @created Oct 16, 2001
* @xdoclet.taghandler namespace="EjbPersistent"
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
public class PersistentTagsHandler extends CmpTagsHandler
{
@@ -155,19 +155,26 @@
* getter comma sperated list)
* @param clazz Description of Parameter
* @param valueObject
+ * @param superclasses
* @return Description of the Returned Value
* @exception XDocletException
* @todo This method only takes the field of the current
class. I think it's ok. Any
* objection ?
*/
- public static String fieldList(XClass clazz, String inclTag, String exclTag,
int type, String valueObject) throws XDocletException
+ public static String fieldList(XClass clazz, String inclTag, String exclTag,
int type, String valueObject, boolean superclasses) throws XDocletException
{
+ Log log = LogUtil.getLog(PersistentTagsHandler.class, "fieldList");
+
+ log.debug("fieldList(" + clazz.getName() + ",incl tag=" + inclTag + ",excl
tag=" + exclTag + ",type=" + type);
+
Map foundFields = new HashMap();
StringBuffer st = new StringBuffer();
String methodType = null;
String name = null;
- //do {
+ do {
+ log.debug(" --> " + clazz);
+
XMethod[] methods = clazz.getMethods();
for (int j = 0; j < methods.length; j++) {
@@ -194,13 +201,14 @@
st.append(methodType).append(methodDimension).append('
').append(name);
break;
case 1:
- String value =
MethodTagsHandler.getPropertyNameFor(methods[j]);
+ //String value =
MethodTagsHandler.getPropertyNameFor(methods[j]);
if (foundFields.size() > 1) {
st.append(" + " + "\" \"" + " + ");
}
- st.append("\"").append(name).append("=\" + ").append(value);
+ //st.append("\"").append(name).append("=\" +
").append(value);
+ st.append("\"").append(name).append("=\" +
").append(methods[j].getName()).append("()");
break;
case 2:
if (foundFields.size() > 1) {
@@ -214,8 +222,8 @@
}
// Add super class info
- //clazz = clazz.superclass();
- //} while (clazz != null);
+ clazz = clazz.getSuperclass();
+ } while (clazz != null && superclasses);
return st.toString();
}
@@ -305,24 +313,6 @@
}
}
-
- /**
- * Returns a string containing comma-separated list of persistent fields with
their types.
- *
- * @param attributes
- * @return A string containing comma-separated list of
persistent fields without their types.
- * @exception XDocletException
- * @see
#fieldList(xjavadoc.XClass,java.lang.String,java.lang.String,int,java.lang.String)
- * @doc:tag type="content"
- */
- public String persistentfieldList(Properties attributes) throws XDocletException
- {
- String valueObject = attributes.getProperty("valueobject");
-
- return fieldList(getCurrentClass(), null, null, 0, valueObject);
- }
-
-
/**
* Returns a string containing comma-separated list of persistent fields
without their types in fieldname="value"
* format.
@@ -338,21 +328,27 @@
{
String valueObject = attributes.getProperty("valueobject");
- return fieldList(getCurrentClass(), null, null, 1, valueObject);
+ return fieldList(getCurrentClass(), null, null, 1, valueObject, false);
}
/**
* Returns a string containing comma-separated list of persistent fields with
their types.
*
+ * @param attributes
* @return A string containing comma-separated list of
persistent fields without their types.
* @exception XDocletException
* @see
#fieldList(xjavadoc.XClass,java.lang.String,java.lang.String,int,java.lang.String)
* @doc:tag type="content"
*/
- public String persistentfieldList() throws XDocletException
+ public String persistentfieldList(Properties attributes) throws XDocletException
{
- return fieldList(getCurrentClass(), null, null, 0, null);
+ String superclasses_str = attributes.getProperty("superclasses");
+ boolean superclasses = TypeConversionUtil.stringToBoolean(superclasses_str,
true);
+
+ String valueObject = attributes.getProperty("valueobject");
+
+ return fieldList(getCurrentClass(), null, null, 0, valueObject,
superclasses);
}
@@ -368,7 +364,7 @@
*/
public String persistentfieldNameValueList() throws XDocletException
{
- return fieldList(getCurrentClass(), null, null, 1, null);
+ return fieldList(getCurrentClass(), null, null, 1, null, true);
}
1.7 +3 -3
xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/PkTagsHandler.java
Index: PkTagsHandler.java
===================================================================
RCS file:
/cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/entity/PkTagsHandler.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -w -r1.6 -r1.7
--- PkTagsHandler.java 12 Jun 2002 23:34:25 -0000 1.6
+++ PkTagsHandler.java 18 Jun 2002 21:10:15 -0000 1.7
@@ -29,7 +29,7 @@
* @author Ara Abrahamian ([EMAIL PROTECTED])
* @created 13. juni 2002
* @xdoclet:taghandler namespace="EjbPk"
- * @version $Revision: 1.6 $
+ * @version $Revision: 1.7 $
*/
public class PkTagsHandler extends EjbTagsHandler
{
@@ -431,7 +431,7 @@
*/
public String pkfieldList() throws XDocletException
{
- return PersistentTagsHandler.fieldList(getCurrentClass(), "ejb:pk-field",
null, 0, null);
+ return PersistentTagsHandler.fieldList(getCurrentClass(), "ejb:pk-field",
null, 0, null, true);
}
@@ -448,7 +448,7 @@
public String pkfieldListFrom(Properties attributes) throws XDocletException
{
String name = attributes.getProperty("name");
- String commaSep = PersistentTagsHandler.fieldList(getCurrentClass(),
"ejb:pk-field", null, 2, null);
+ String commaSep = PersistentTagsHandler.fieldList(getCurrentClass(),
"ejb:pk-field", null, 2, null, true);
StringTokenizer st = new StringTokenizer(commaSep, ",");
String ret = "";
----------------------------------------------------------------------------
Bringing you mounds of caffeinated joy
>>> http://thinkgeek.com/sf <<<
_______________________________________________
Xdoclet-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel