Return-Path: Delivered-To: apmail-cocoon-cvs-archive@www.apache.org Received: (qmail 78086 invoked from network); 13 Jan 2005 20:48:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 13 Jan 2005 20:48:28 -0000 Received: (qmail 67374 invoked by uid 500); 13 Jan 2005 20:48:27 -0000 Delivered-To: apmail-cocoon-cvs-archive@cocoon.apache.org Received: (qmail 67225 invoked by uid 500); 13 Jan 2005 20:48:27 -0000 Mailing-List: contact cvs-help@cocoon.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@cocoon.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list cvs@cocoon.apache.org Received: (qmail 67210 invoked by uid 99); 13 Jan 2005 20:48:26 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Thu, 13 Jan 2005 12:48:26 -0800 Received: (qmail 77994 invoked by uid 65534); 13 Jan 2005 20:48:25 -0000 Date: 13 Jan 2005 20:48:25 -0000 Message-ID: <20050113204825.77984.qmail@minotaur.apache.org> From: tim@apache.org To: cvs@cocoon.apache.org Subject: svn commit: r125101 - cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Author: tim Date: Thu Jan 13 12:48:22 2005 New Revision: 125101 URL: http://svn.apache.org/viewcvs?view=rev&rev=125101 Log: Add support framework for tracking source locations for the forms bindings and add some comments. Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBuilderBase.java Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java?view=diff&rev=125101&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java&r1=125100&p2=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java&r2=125101 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/AbstractCustomBinding.java Thu Jan 13 12:48:22 2005 @@ -27,9 +27,15 @@ private Binding parent; private String id; + /** + * Sets parent binding. + */ public void setParent(Binding binding) { this.parent = binding; } + /** + * Returns binding definition id. + */ public String getId() { return this.id; } Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java?view=diff&rev=125101&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java&r1=125100&p2=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java&r2=125101 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBase.java Thu Jan 13 12:48:22 2005 @@ -65,6 +65,13 @@ } /** + * Gets source location of this binding. + */ + public String getLocation() { + return this.commonAtts.location; + } + + /** * Sets parent binding. */ public void setParent(Binding binding) { @@ -94,8 +101,7 @@ } classes.put(id, classBinding); } else { - // TODO: Improve message to include source location. - throw new RuntimeException("Class \"" + id + "\" not found."); + throw new RuntimeException("Class \"" + id + "\" not found (" + getLocation() + ")"); } } return classBinding; @@ -125,7 +131,7 @@ } else { containerId = "container \"" + containerId + "\""; } - throw new RuntimeException(getClass().getName() + ": Widget \"" + + throw new RuntimeException(getClass().getName() + " (" + getLocation() + "): Widget \"" + id + "\" does not exist in the " + containerId + " (" + parent.getLocation() + ")."); } Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBuilderBase.java Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBuilderBase.java?view=diff&rev=125101&p1=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBuilderBase.java&r1=125100&p2=cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBuilderBase.java&r2=125101 ============================================================================== --- cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBuilderBase.java (original) +++ cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/binding/JXPathBindingBuilderBase.java Thu Jan 13 12:48:22 2005 @@ -97,14 +97,15 @@ */ protected static CommonAttributes getCommonAttributes(Element bindingElm) throws BindingException { try { + String location = DomHelper.getLocation(bindingElm); //TODO: should we eventually remove this? //throw an error if people are still using the old-style @read-only or @readonly if (DomHelper.getAttributeAsBoolean(bindingElm, "readonly", false)) { - throw new BindingException("Error in binding file " + DomHelper.getLocation(bindingElm) + throw new BindingException("Error in binding file " + location + "\nThe usage of the attribute @readonly has been deprecated in favour of @direction."); } if (DomHelper.getAttributeAsBoolean(bindingElm, "read-only", false)) { - throw new BindingException("Error in binding file " + DomHelper.getLocation(bindingElm) + throw new BindingException("Error in binding file " + location + "\nThe usage of the attribute @read-only has been deprecated in favour of @direction."); } @@ -124,10 +125,10 @@ // we (actually jxpath) doesn't support un-prefixed namespace-declarations: // so we decide to break on those above silently ignoring them if (nsDeclarationMap != null && nsDeclarationMap.values().contains(null)) - throw new BindingException("Error in binding file " + DomHelper.getLocation(bindingElm) + throw new BindingException("Error in binding file " + location + "\nBinding doesn't support having namespace-declarations without explicit prefixes."); - return new CommonAttributes(direction, leniency, nsDeclarationMap); + return new CommonAttributes(location, direction, leniency, nsDeclarationMap); } catch (BindingException e) { throw e; } catch (Exception e) { @@ -141,6 +142,11 @@ * actions of a given binding. */ protected static class CommonAttributes{ + + /** + * Source location of this binding. + */ + final String location; /** * Flag which controls whether a binding is active during loading. */ @@ -159,13 +165,14 @@ */ final Map nsDeclarations; - final static CommonAttributes DEFAULT = new CommonAttributes(true, true, null, null); + final static CommonAttributes DEFAULT = new CommonAttributes("location unknown", true, true, null, null); - CommonAttributes(String direction, String leniency, Map nsDeclarations){ - this(isLoadEnabled(direction), isSaveEnabled(direction), decideLeniency(leniency), nsDeclarations); + CommonAttributes(String location, String direction, String leniency, Map nsDeclarations){ + this(location, isLoadEnabled(direction), isSaveEnabled(direction), decideLeniency(leniency), nsDeclarations); } - CommonAttributes(boolean loadEnabled, boolean saveEnabled, Boolean leniency, Map nsDeclarations){ + CommonAttributes(String location, boolean loadEnabled, boolean saveEnabled, Boolean leniency, Map nsDeclarations){ + this.location = location; this.loadEnabled = loadEnabled; this.saveEnabled = saveEnabled; this.leniency = leniency; @@ -198,7 +205,7 @@ * @return null if the leniency parameter is null or a String otherwise the allowed values */ private static Boolean decideLeniency(String leniency) { - return BooleanUtils.toBooleanObject(leniency); + return BooleanUtils.toBooleanObject(leniency); } } }