Update of /cvsroot/xdoclet/xdoclet/modules/jdo/src/xdoclet/modules/jdo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29696/modules/jdo/src/xdoclet/modules/jdo
Modified Files: JdoXmlMetadataSubTask.java JdoTagsHandler.java Log Message: adapted xdoclet-jdo to some changes of the jdo_2_0.dtd Index: JdoXmlMetadataSubTask.java =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/modules/jdo/src/xdoclet/modules/jdo/JdoXmlMetadataSubTask.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -r1.17 -r1.18 *** JdoXmlMetadataSubTask.java 18 Sep 2005 23:37:51 -0000 1.17 --- JdoXmlMetadataSubTask.java 27 Feb 2006 19:25:27 -0000 1.18 *************** *** 61,69 **** private String project = "metadata"; - // /** - // * @see #setFetchDepth(int) - // */ - // private int fetchDepth = -1; - /** * Describe what the WebXmlSubTask constructor does --- 61,64 ---- *************** *** 84,95 **** } - // /** - // * @return Returns the fetch-depth as set by [EMAIL PROTECTED] #setFetchDepth(int)} or -1 if nothing was set. - // */ - // public int getFetchDepth() - // { - // return fetchDepth; - // } - public void setProject(String project) { --- 79,82 ---- *************** *** 102,123 **** } - // /** - // * The JDO spec defines that a fetch-depth of 1 shall be used if a field has no fetch-depth declared. In case you - // * don't like this default, you must tag every field with a different fetch-depth. This is an annoying work if you - // * want to have the same for the majority of your fields. Hence, you have the possibility to declare the <code>fetchDepth</code> - // * attribute for the <code>jdometadata</code> subtask. This will cause every field to be tagged with this default, - // * if the field doesn't have a fetch-depth declared. If the field has a fetch-depth, this one is used. - // * - // * @param fetchDepth Either -1 to indicate that no default-fetch-depth should be set, or 0 for infinite depth, or a - // * positive number indicating how many levels the detaching shall dive into the object-graph. - // */ - // public void setFetchDepth(int fetchDepth) - // { - // if (fetchDepth < -1) - // throw new IllegalArgumentException("fetchDepth=" + fetchDepth + " is illegal! Must be -1 to deactivate the default-fetch-depth or a number >= 0!"); - // - // this.fetchDepth = fetchDepth; - // } - /** * Called to validate configuration parameters. --- 89,92 ---- Index: JdoTagsHandler.java =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/modules/jdo/src/xdoclet/modules/jdo/JdoTagsHandler.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** JdoTagsHandler.java 19 Sep 2005 17:19:57 -0000 1.14 --- JdoTagsHandler.java 27 Feb 2006 19:25:27 -0000 1.15 *************** *** 34,52 **** private VendorExtension _currentExtension; - // /** - // * @see #cacheFieldsInFetchGroups - // */ - // private XClass cacheFieldsInFetchGroupsClass = null; - // /** - // * This Set stores all fields that are declared in the current class (cached in [EMAIL PROTECTED] - // * #cacheFieldsInFetchGroupsClass}) to be included in a fetch-group. If a field is in no fetch-group, it is not - // * contained in this Set. This Set is null if [EMAIL PROTECTED] #ifCurrentFieldIsInFetchGroup(String, Properties)} has not yet - // * been called. If [EMAIL PROTECTED] #cacheFieldsInFetchGroupsClass} specifies a class that is different from [EMAIL PROTECTED] - // * XDocletTagSupport#getCurrentClass()} then this Set needs to be recreated. - // */ - // private Set cacheFieldsInFetchGroups = null; - private String currentFetchGroupFieldName = null; ! private int currentFetchGroupFieldFetchDepth = -1; /** --- 34,39 ---- private VendorExtension _currentExtension; private String currentFetchGroupFieldName = null; ! private int currentFetchGroupFieldRecursionDepth = -1; /** *************** *** 207,224 **** } ! public String currentFetchGroupFieldFetchDepth() { if (currentFetchGroupFieldName == null) ! throw new IllegalStateException("You cannot access the currentFetchGroupFieldFetchDepth outside of the forAllFetchGroupFieldNames loop!"); ! return Integer.toString(currentFetchGroupFieldFetchDepth); } ! public void ifCurrentFetchGroupFieldHasFetchDepth(String template, Properties attributes) throws XDocletException { if (currentFetchGroupFieldName == null) ! throw new IllegalStateException("You cannot use ifCurrentFetchGroupFieldHasFetchDepth outside of the forAllFetchGroupFieldNames loop!"); ! if (currentFetchGroupFieldFetchDepth >= 0) generate(template); } --- 194,211 ---- } ! public String currentFetchGroupFieldRecursionDepth() { if (currentFetchGroupFieldName == null) ! throw new IllegalStateException("You cannot access the currentFetchGroupFieldRecursionDepth outside of the forAllFetchGroupFieldNames loop!"); ! return Integer.toString(currentFetchGroupFieldRecursionDepth); } ! public void ifCurrentFetchGroupFieldHasRecursionDepth(String template, Properties attributes) throws XDocletException { if (currentFetchGroupFieldName == null) ! throw new IllegalStateException("You cannot use ifCurrentFetchGroupFieldHasRecursionDepth outside of the forAllFetchGroupFieldNames loop!"); ! if (currentFetchGroupFieldRecursionDepth >= 0) generate(template); } *************** *** 226,230 **** /** * This is used to iterate the comma-separated list of fields within a fetch-group (there must be a current ! * fetch-group!). Each field may optionally be followed by "[fetch-depth]". <p> * * Example: <pre> --- 213,217 ---- /** * This is used to iterate the comma-separated list of fields within a fetch-group (there must be a current ! * recursion-group!). Each field may optionally be followed by "[recursion-depth]". <p> * * Example: <pre> *************** *** 280,300 **** String fieldRaw = fields[i]; ! // split fieldRaw into fieldName + fetch-depth String[] parts = fieldRaw.split("\\["); String fieldName = parts[0]; ! int fetchDepth; if (parts.length == 1) { ! // there is no fetch-depth ! fetchDepth = -1; } else if (parts.length == 2) { ! String fetchDepthStr = parts[1]; ! if (!fetchDepthStr.endsWith("]")) throw new XDocletException("Attribute field-names of fetch-group \"" + getCurrentClassTag().getAttributeValue("name") + "\" is not formatted correctly! One of the fields has an open [ and misses the closing ]!"); try { ! fetchDepth = Integer.parseInt(fetchDepthStr.substring(0, fetchDepthStr.length() - 1)); } catch (NumberFormatException x) { --- 267,287 ---- String fieldRaw = fields[i]; ! // split fieldRaw into fieldName + recursion-depth String[] parts = fieldRaw.split("\\["); String fieldName = parts[0]; ! int recursionDepth; if (parts.length == 1) { ! // there is no recursion-depth ! recursionDepth = -1; } else if (parts.length == 2) { ! String recursionDepthStr = parts[1]; ! if (!recursionDepthStr.endsWith("]")) throw new XDocletException("Attribute field-names of fetch-group \"" + getCurrentClassTag().getAttributeValue("name") + "\" is not formatted correctly! One of the fields has an open [ and misses the closing ]!"); try { ! recursionDepth = Integer.parseInt(recursionDepthStr.substring(0, recursionDepthStr.length() - 1)); } catch (NumberFormatException x) { *************** *** 306,314 **** currentFetchGroupFieldName = fieldName; ! currentFetchGroupFieldFetchDepth = fetchDepth; generate(template); } currentFetchGroupFieldName = null; ! currentFetchGroupFieldFetchDepth = -1; } --- 293,301 ---- currentFetchGroupFieldName = fieldName; ! currentFetchGroupFieldRecursionDepth = recursionDepth; generate(template); } currentFetchGroupFieldName = null; ! currentFetchGroupFieldRecursionDepth = -1; } ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ xdoclet-devel mailing list xdoclet-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xdoclet-devel