You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2011/03/20 13:43:28 UTC
svn commit: r1083424 - in /wicket/trunk/wicket-core/src:
main/java/org/apache/wicket/markup/
main/java/org/apache/wicket/markup/parser/
main/java/org/apache/wicket/markup/parser/filter/
main/java/org/apache/wicket/util/tester/ test/java/org/apache/wick...
Author: jdonnerstag
Date: Sun Mar 20 12:43:27 2011
New Revision: 1083424
URL: http://svn.apache.org/viewvc?rev=1083424&view=rev
Log:
Finished some work on MarkupFilter which I started earlier but obviously didn't finish yet.
- merged Base and AbstractMarkupFilter into AMF
- XmlTag no longer is a MarkupElement (like RawMarkup and ComponentTag). Since XmlTag will always be wrapped by CT and never be an element of Markup, ...
- renamed IMarkupFilter.nextTag(ComponentTag) to onComponentTag(..)
- updated comments
Removed:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/BaseMarkupFilter.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupFragment.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/MarkupFragment.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IMarkupFilter.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IXmlPullParser.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlTag.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlProblemFinder.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpander.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RootMarkupFilter.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketNamespaceHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketRemoveTagHandler.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketTagIdentifier.java
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/PanelTest.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/XmlPullParserTest.java
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpanderTest.java
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/AbstractMarkupParser.java Sun Mar 20 12:43:27 2011
@@ -211,7 +211,7 @@ public abstract class AbstractMarkupPars
*/
private ComponentTag getNextTag() throws ParseException
{
- return (ComponentTag)markupFilterChain.nextTag();
+ return (ComponentTag)markupFilterChain.nextElement();
}
/**
@@ -228,8 +228,8 @@ public abstract class AbstractMarkupPars
ComponentTag tag;
while (null != (tag = getNextTag()))
{
- boolean add = (tag.getId() != null) || tag.getFlag(ComponentTag.ADD);
- if (!add && tag.getXmlTag().isClose())
+ boolean add = (tag.getId() != null);
+ if (!add && tag.isClose())
{
add = ((tag.getOpenTag() != null) && (tag.getOpenTag().getId() != null));
}
@@ -442,4 +442,13 @@ public abstract class AbstractMarkupPars
}
return rawMarkup;
}
+
+ /**
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString()
+ {
+ return markup.toString();
+ }
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/ComponentTag.java Sun Mar 20 12:43:27 2011
@@ -62,11 +62,8 @@ public class ComponentTag extends Markup
/** Some HTML tags are allow to have no close tag, e.g. 'br' */
private final static int NO_CLOSE_TAG = 0x0010;
- /** The component tag shall be added to the markup in any case */
- public final static int ADD = 0x0020;
-
/** Render the tag as RawMarkup even if no Component can be found */
- public final static int RENDER_RAW = 0x0040;
+ public final static int RENDER_RAW = 0x0020;
/**
* Assuming this is a open (or open-close) tag, 'closes' refers to the ComponentTag which closes
@@ -400,17 +397,6 @@ public class ComponentTag extends Markup
}
/**
- * Compare tag name including namespace
- *
- * @param tag
- * @return true if name and namespace are equal
- */
- public boolean hasEqualTagName(final ComponentTag tag)
- {
- return xmlTag.hasEqualTagName(tag.getXmlTag());
- }
-
- /**
* Makes this tag object immutable by making the attribute map unmodifiable. Immutable tags
* cannot be made mutable again. They can only be copied into new mutable tag objects.
*/
@@ -756,7 +742,7 @@ public class ComponentTag extends Markup
/**
* @return Returns the underlying xml tag.
*/
- final XmlTag getXmlTag()
+ public final XmlTag getXmlTag()
{
return xmlTag;
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupFragment.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupFragment.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupFragment.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/IMarkupFragment.java Sun Mar 20 12:43:27 2011
@@ -26,7 +26,7 @@ package org.apache.wicket.markup;
*
* @author Juergen Donnerstag
*/
-public interface IMarkupFragment
+public interface IMarkupFragment extends Iterable<MarkupElement>
{
/**
* Get the MarkupElement at the index provided.
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/Markup.java Sun Mar 20 12:43:27 2011
@@ -18,6 +18,7 @@ package org.apache.wicket.markup;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Iterator;
import java.util.List;
import org.apache.wicket.util.lang.Args;
@@ -241,4 +242,22 @@ public class Markup implements IMarkupFr
return buf.toString();
}
+
+ /**
+ * @see java.lang.Iterable#iterator()
+ */
+ public final Iterator<MarkupElement> iterator()
+ {
+ return markupElements.iterator();
+ }
+
+ /**
+ * @param startIndex
+ * @param size
+ * @return Iterator
+ */
+ public final Iterator<MarkupElement> iterator(int startIndex, int size)
+ {
+ return markupElements.subList(startIndex, startIndex + size).iterator();
+ }
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/MarkupFragment.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/MarkupFragment.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/MarkupFragment.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/MarkupFragment.java Sun Mar 20 12:43:27 2011
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.markup;
+import java.util.Iterator;
+
import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.string.Strings;
@@ -224,4 +226,12 @@ public class MarkupFragment implements I
}
return buf.toString();
}
+
+ /**
+ * @see java.lang.Iterable#iterator()
+ */
+ public Iterator<MarkupElement> iterator()
+ {
+ return getRootMarkup().iterator(startIndex, size);
+ }
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/AbstractMarkupFilter.java Sun Mar 20 12:43:27 2011
@@ -20,20 +20,21 @@ import java.text.ParseException;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.Markup;
+import org.apache.wicket.markup.MarkupElement;
/**
* Base class for markup filters
*
- * @see org.apache.wicket.markup.MarkupParser
- *
* @author Jonathan Locke
+ * @author Juergen Donnerstag
*/
public abstract class AbstractMarkupFilter implements IMarkupFilter
{
/** The next MarkupFilter in the chain */
private IMarkupFilter parent;
+ /** TODO Not sure this counter is sufficiently safe, since filters are created per markup file. */
private int count;
/**
@@ -44,20 +45,9 @@ public abstract class AbstractMarkupFilt
}
/**
- * Construct.
- *
- * @param parent
- * The parent of this component The next element in the chain.
- */
- public AbstractMarkupFilter(final IMarkupFilter parent)
- {
- this.parent = parent;
- }
-
- /**
* @return The next MarkupFilter in the chain
*/
- public final IMarkupFilter getNextFilter()
+ public IMarkupFilter getNextFilter()
{
return parent;
}
@@ -68,24 +58,76 @@ public abstract class AbstractMarkupFilt
* @param parent
* The parent of this component The next element in the chain
*/
- public final void setNextFilter(final IMarkupFilter parent)
+ public void setNextFilter(final IMarkupFilter parent)
{
this.parent = parent;
}
/**
- * A convenience function to retrieve the next tag (same as nextTag()), however assuming that it
- * is a ComponentTag.
- *
- * @return ComponentTag
- * @throws ParseException
+ * Get the next xml element from the markup. If eof, than retun null. Ignore raw markup. Invoke
+ * nextTag(tag) if a tag was found.
*/
- protected final ComponentTag nextComponentTag() throws ParseException
+ public MarkupElement nextElement() throws ParseException
{
- return (ComponentTag)getNextFilter().nextTag();
+ MarkupElement elem = getNextFilter().nextElement();
+ if ((elem != null) && (elem instanceof ComponentTag))
+ {
+ elem = onComponentTag((ComponentTag)elem);
+ }
+ return elem;
}
/**
+ * Invoked when a ComponentTag was found.
+ * <p>
+ * By default this method is also called for WicketTags.
+ *
+ * @param tag
+ * @return Usually the same as the tag attribute
+ * @throws ParseException
+ */
+ protected abstract MarkupElement onComponentTag(ComponentTag tag) throws ParseException;
+
+ /**
+ * Invoked when a WicketTag was found.
+ *
+ * @param tag
+ * @return Usually the same as the tag attribute
+ * @throws ParseException
+ */
+// Not yet used
+// protected MarkupElement onWicketTag(final WicketTag tag) throws ParseException
+// {
+// return onComponentTag(tag);
+// }
+
+ /**
+ * Invoked when a tags (e.g. DOCTYPE, PROCESSING_INSTRUCTIION, etc. which have been identified
+ * as special tags by the xml parser.
+ *
+ * @param tag
+ * @return Usually the same as the tag attribute
+ * @throws ParseException
+ */
+// Not yet used
+// protected MarkupElement onSpecialTag(final ComponentTag tag) throws ParseException
+// {
+// return tag;
+// }
+
+ /**
+ * Invoked if current element is raw markup
+ *
+ * @param rawMarkup
+ * @return Usually the same as the tag attribute
+ */
+// Not yet used
+// protected MarkupElement onRawMarkup(final MarkupElement rawMarkup)
+// {
+// return rawMarkup;
+// }
+
+ /**
*
* @return A unique count per instance
*/
@@ -94,6 +136,9 @@ public abstract class AbstractMarkupFilt
return count++;
}
+ /**
+ * Noop by default
+ */
public void postProcess(final Markup markup)
{
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IMarkupFilter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IMarkupFilter.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IMarkupFilter.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IMarkupFilter.java Sun Mar 20 12:43:27 2011
@@ -26,34 +26,23 @@ import org.apache.wicket.markup.MarkupEl
* Wicket uses a streaming XML parser to read the markup. A chain of IMarkupFilters is used e.g. to
* remove comments, allow for html typical markup (some tags don't need to be closed explicitly),
* etc.
- * <p>
- * The streaming XML parser must implement IMarkupFilter itself and thus is usually the first
- * element of the chain.
*
* @see org.apache.wicket.markup.MarkupParser
+ * @see org.apache.wicket.markup.MarkupFactory
+ *
* @author Juergen Donnerstag
*/
public interface IMarkupFilter
{
/**
- * IMarkupFilters are usually chained with the last filter being an XML parser. The getParent()
- * method returns the next filter in the chain.
+ * IMarkupFilters are usually chained with the last filter retrieving the elements from the XML
+ * parser.
*
* @return The next filter in the chain, or null if the last one.
*/
IMarkupFilter getNextFilter();
/**
- * Get the next MarkupElement from the parent MarkupFilter and handle it if the specific filter
- * criteria are met. Depending on the filter, it may return the MarkupElement unchanged,
- * modified or remove it by asking the parent handler for the next tag.
- *
- * @return Return the next eligible MarkupElement
- * @throws ParseException
- */
- MarkupElement nextTag() throws ParseException;
-
- /**
* Set parent filter.
*
* @param parent
@@ -62,7 +51,17 @@ public interface IMarkupFilter
void setNextFilter(final IMarkupFilter parent);
/**
- * Called after all filters have been processed
+ * Get the next MarkupElement from the parent MarkupFilter and handle it if the specific filter
+ * criteria are met. Depending on the filter, it may return the MarkupElement unchanged,
+ * modified or remove it by asking the parent handler for the next tag.
+ *
+ * @return Return the next eligible MarkupElement. Null, if no more found.
+ * @throws ParseException
+ */
+ MarkupElement nextElement() throws ParseException;
+
+ /**
+ * Called after all filters have been processed.
*
* @param markup
*/
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IXmlPullParser.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IXmlPullParser.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IXmlPullParser.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/IXmlPullParser.java Sun Mar 20 12:43:27 2011
@@ -20,7 +20,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
-import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
@@ -162,7 +161,12 @@ public interface IXmlPullParser
*
* @return The current element
*/
- MarkupElement getElement();
+ XmlTag getElement();
+
+ /**
+ * @return The xml string from the last element
+ */
+ CharSequence getString();
/**
* Set the position marker of the markup at the current position.
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlPullParser.java Sun Mar 20 12:43:27 2011
@@ -22,7 +22,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.text.ParseException;
-import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.parser.XmlTag.TagType;
import org.apache.wicket.markup.parser.XmlTag.TextSegment;
import org.apache.wicket.util.io.FullyBufferedReader;
@@ -408,7 +407,7 @@ public final class XmlPullParser impleme
/**
* @return MarkupElement
*/
- public final MarkupElement getElement()
+ public final XmlTag getElement()
{
return lastTag;
}
@@ -425,7 +424,7 @@ public final class XmlPullParser impleme
* @return The next XML tag
* @throws ParseException
*/
- public final MarkupElement nextTag() throws ParseException
+ public final XmlTag nextTag() throws ParseException
{
while (next() != ELEMENT_TYPE.NOT_INITIALIZED)
{
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlTag.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlTag.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlTag.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/XmlTag.java Sun Mar 20 12:43:27 2011
@@ -19,7 +19,6 @@ package org.apache.wicket.markup.parser;
import java.util.Iterator;
import java.util.Map;
-import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.util.lang.Objects;
import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.wicket.util.string.StringValue;
@@ -36,7 +35,7 @@ import org.slf4j.LoggerFactory;
*
* @author Jonathan Locke
*/
-public class XmlTag extends MarkupElement
+public class XmlTag
{
/** Log. */
private static final Logger log = LoggerFactory.getLogger(XmlTag.class);
@@ -105,23 +104,22 @@ public class XmlTag extends MarkupElemen
return (closes == open) || ((closes == open.copyOf) && (this != open));
}
- @Override
- public final boolean equalTo(final MarkupElement element)
+ /**
+ * @param element
+ * @return true, if namespace, name and attributes are the same
+ */
+ public final boolean equalTo(final XmlTag element)
{
- if (element instanceof XmlTag)
+ final XmlTag that = element;
+ if (!Objects.equal(getNamespace(), that.getNamespace()))
{
- final XmlTag that = (XmlTag)element;
- if (!Objects.equal(getNamespace(), that.getNamespace()))
- {
- return false;
- }
- if (!getName().equals(that.getName()))
- {
- return false;
- }
- return getAttributes().equals(that.getAttributes());
+ return false;
}
- return false;
+ if (!getName().equals(that.getName()))
+ {
+ return false;
+ }
+ return getAttributes().equals(that.getAttributes());
}
/**
@@ -285,32 +283,6 @@ public class XmlTag extends MarkupElemen
}
/**
- * Compare tag name including namespace
- *
- * @param tag
- * @return true if name and namespace are equal
- */
- public boolean hasEqualTagName(final XmlTag tag)
- {
- if (!getName().equalsIgnoreCase(tag.getName()))
- {
- return false;
- }
-
- if ((getNamespace() == null) && (tag.getNamespace() == null))
- {
- return true;
- }
-
- if ((getNamespace() != null) && (tag.getNamespace() != null))
- {
- return getNamespace().equalsIgnoreCase(tag.getNamespace());
- }
-
- return false;
- }
-
- /**
* Makes this tag object immutable by making the attribute map unmodifiable. Immutable tags
* cannot be made mutable again. They can only be copied into new mutable tag objects.
*/
@@ -547,7 +519,9 @@ public class XmlTag extends MarkupElemen
return toCharSequence().toString();
}
- @Override
+ /**
+ * @return The string representation of the tag
+ */
public CharSequence toCharSequence()
{
if (!isMutable && (text != null))
@@ -559,11 +533,10 @@ public class XmlTag extends MarkupElemen
}
/**
- * Converts this object to a string representation.
+ * String representation with line and column number
*
* @return String version of this object
*/
- @Override
public String toUserDebugString()
{
return " '" + toString() + "' (line " + getLineNumber() + ", column " + getColumnNumber() +
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/EnclosureHandler.java Sun Mar 20 12:43:27 2011
@@ -27,6 +27,7 @@ import org.apache.wicket.markup.MarkupSt
import org.apache.wicket.markup.WicketParseException;
import org.apache.wicket.markup.WicketTag;
import org.apache.wicket.markup.html.internal.Enclosure;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.resolver.IComponentResolver;
@@ -45,7 +46,7 @@ import org.apache.wicket.markup.resolver
*
* @author Juergen Donnerstag
*/
-public final class EnclosureHandler extends BaseMarkupFilter implements IComponentResolver
+public final class EnclosureHandler extends AbstractMarkupFilter implements IComponentResolver
{
private static final long serialVersionUID = 1L;
@@ -75,7 +76,7 @@ public final class EnclosureHandler exte
}
@Override
- protected final MarkupElement nextTag(ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
final boolean isWicketTag = tag instanceof WicketTag;
final boolean isEnclosureTag = isWicketTag && ((WicketTag)tag).isEnclosureTag();
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HeadForceTagIdHandler.java Sun Mar 20 12:43:27 2011
@@ -21,6 +21,7 @@ import java.text.ParseException;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.WicketTag;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.parser.TagAttributes;
import org.apache.wicket.util.string.AppendingStringBuffer;
@@ -37,7 +38,7 @@ import org.apache.wicket.util.string.App
*
* @author Matej Knopp
*/
-public class HeadForceTagIdHandler extends BaseMarkupFilter
+public class HeadForceTagIdHandler extends AbstractMarkupFilter
{
/** Common prefix for all id's generated by this filter */
private final String headElementIdPrefix;
@@ -71,7 +72,7 @@ public class HeadForceTagIdHandler exten
}
@Override
- protected final MarkupElement nextTag(ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
// is it a <wicket:head> tag?
if (tag instanceof WicketTag && ((WicketTag)tag).isHeadTag())
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHandler.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHandler.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHandler.java Sun Mar 20 12:43:27 2011
@@ -20,7 +20,9 @@ import java.text.ParseException;
import java.util.HashMap;
import java.util.Map;
+import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.Markup;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.WicketParseException;
import org.apache.wicket.markup.parser.AbstractMarkupFilter;
@@ -65,36 +67,29 @@ public final class HtmlHandler extends A
{
}
- public MarkupElement nextTag() throws ParseException
+ @Override
+ public void postProcess(final Markup markup)
{
- // Get the next tag. If null, no more tags are available
- final ComponentTag tag = (ComponentTag)getNextFilter().nextTag();
- if (tag == null)
- {
- // No more tags from the markup.
- // If there's still a non-simple tag left, it's an error
- while (stack.size() > 0)
- {
- final ComponentTag top = stack.peek();
+ // If there's still a non-simple tag left, it's an error
+ while (stack.size() > 0)
+ {
+ final ComponentTag top = stack.peek();
- if (!requiresCloseTag(top.getName()))
- {
- stack.pop();
- }
- else
- {
- throw new WicketParseException("Tag does not have a close tag:", top);
- }
+ if (!requiresCloseTag(top.getName()))
+ {
+ stack.pop();
+ }
+ else
+ {
+ throw new WicketRuntimeException(new WicketParseException(
+ "Tag does not have a close tag:", top));
}
-
- return tag;
- }
-
- if (log.isDebugEnabled())
- {
- log.debug("tag: " + tag.toUserDebugString() + ", stack: " + stack);
}
+ }
+ @Override
+ protected MarkupElement onComponentTag(final ComponentTag tag) throws ParseException
+ {
// Check tag type
if (tag.isOpen())
{
@@ -111,7 +106,7 @@ public final class HtmlHandler extends A
// If the name of the current close tag does not match the
// tag on the stack then we may have a mismatched close tag
- boolean mismatch = !top.hasEqualTagName(tag);
+ boolean mismatch = !hasEqualTagName(top, tag);
if (mismatch)
{
@@ -130,7 +125,7 @@ public final class HtmlHandler extends A
top = stack.pop();
// Does new top of stack mismatch too?
- mismatch = !top.hasEqualTagName(tag);
+ mismatch = !hasEqualTagName(top, tag);
}
// If adjusting for simple tags did not fix the problem,
@@ -171,4 +166,31 @@ public final class HtmlHandler extends A
{
return doesNotRequireCloseTag.get(name.toLowerCase()) == null;
}
+
+ /**
+ * Compare tag name including namespace
+ *
+ * @param tag1
+ * @param tag2
+ * @return true if name and namespace are equal
+ */
+ public static boolean hasEqualTagName(final ComponentTag tag1, final ComponentTag tag2)
+ {
+ if (!tag1.getName().equalsIgnoreCase(tag2.getName()))
+ {
+ return false;
+ }
+
+ if ((tag1.getNamespace() == null) && (tag2.getNamespace() == null))
+ {
+ return true;
+ }
+
+ if ((tag1.getNamespace() != null) && (tag2.getNamespace() != null))
+ {
+ return tag1.getNamespace().equalsIgnoreCase(tag2.getNamespace());
+ }
+
+ return false;
+ }
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlHeaderSectionHandler.java Sun Mar 20 12:43:27 2011
@@ -21,6 +21,7 @@ import java.text.ParseException;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.Markup;
import org.apache.wicket.markup.MarkupElement;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.parser.XmlTag.TagType;
@@ -34,7 +35,7 @@ import org.apache.wicket.markup.parser.X
* @see org.apache.wicket.markup.MarkupParser
* @author Juergen Donnerstag
*/
-public final class HtmlHeaderSectionHandler extends BaseMarkupFilter
+public final class HtmlHeaderSectionHandler extends AbstractMarkupFilter
{
private static final String BODY = "body";
private static final String HEAD = "head";
@@ -63,7 +64,7 @@ public final class HtmlHeaderSectionHand
}
@Override
- protected final MarkupElement nextTag(ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
// Whatever there is left in the markup, ignore it
if (ignoreTheRest == true)
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlProblemFinder.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlProblemFinder.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlProblemFinder.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/HtmlProblemFinder.java Sun Mar 20 12:43:27 2011
@@ -21,6 +21,7 @@ import java.text.ParseException;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.WicketParseException;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -47,7 +48,7 @@ import org.slf4j.LoggerFactory;
*
* @author Juergen Donnerstag
*/
-public final class HtmlProblemFinder extends BaseMarkupFilter
+public final class HtmlProblemFinder extends AbstractMarkupFilter
{
/** Logging */
private static final Logger log = LoggerFactory.getLogger(HtmlProblemFinder.class);
@@ -79,7 +80,7 @@ public final class HtmlProblemFinder ext
}
@Override
- protected final MarkupElement nextTag(ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
// Make sure some typical and may be tricky problems are detected and
// logged.
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpander.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpander.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpander.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpander.java Sun Mar 20 12:43:27 2011
@@ -22,6 +22,7 @@ import java.util.List;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupElement;
+import org.apache.wicket.markup.RawMarkup;
import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.parser.XmlTag.TagType;
@@ -48,21 +49,30 @@ public class OpenCloseTagExpander extend
private ComponentTag next = null;
- public MarkupElement nextTag() throws ParseException
+ @Override
+ public MarkupElement nextElement() throws ParseException
{
+ // Did we hold back an elem? Than return that first
if (next != null)
{
- MarkupElement tmp = next;
+ MarkupElement rtn = next;
next = null;
- return tmp;
+ return rtn;
}
- ComponentTag tag = nextComponentTag();
- if (tag == null)
+ // Find the next tag
+ MarkupElement elem;
+ do
{
- return tag;
+ elem = getNextFilter().nextElement();
+ if (elem == null)
+ {
+ return null;
+ }
}
+ while (elem instanceof RawMarkup);
+ ComponentTag tag = (ComponentTag)elem;
if (tag.isOpenClose())
{
String name = tag.getName();
@@ -110,4 +120,13 @@ public class OpenCloseTagExpander extend
{
return replaceForTags.contains(name.toLowerCase());
}
+
+ /**
+ * Noop
+ */
+ @Override
+ protected MarkupElement onComponentTag(ComponentTag tag) throws ParseException
+ {
+ return tag;
+ }
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RelativePathPrefixHandler.java Sun Mar 20 12:43:27 2011
@@ -26,6 +26,7 @@ import org.apache.wicket.markup.MarkupEl
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.WicketTag;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.resolver.IComponentResolver;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.util.string.UrlUtils;
@@ -49,7 +50,9 @@ import org.slf4j.LoggerFactory;
*
* @author Al Maw
*/
-public final class RelativePathPrefixHandler extends BaseMarkupFilter implements IComponentResolver
+public final class RelativePathPrefixHandler extends AbstractMarkupFilter
+ implements
+ IComponentResolver
{
private static final long serialVersionUID = 1L;
@@ -93,7 +96,7 @@ public final class RelativePathPrefixHan
};
@Override
- protected final MarkupElement nextTag(ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
if (tag.isClose())
{
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RootMarkupFilter.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RootMarkupFilter.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RootMarkupFilter.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/RootMarkupFilter.java Sun Mar 20 12:43:27 2011
@@ -18,20 +18,22 @@ package org.apache.wicket.markup.parser.
import java.text.ParseException;
-import org.apache.wicket.markup.Markup;
+import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupElement;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.parser.IMarkupFilter;
import org.apache.wicket.markup.parser.IXmlPullParser;
import org.apache.wicket.markup.parser.IXmlPullParser.ELEMENT_TYPE;
/**
+ * This is the root of all filters, which retrieves the next xml element from the xml parser.
*
* @author Juergen Donnerstag
*/
-public final class RootMarkupFilter implements IMarkupFilter
+public final class RootMarkupFilter extends AbstractMarkupFilter
{
- /** */
+ /** The xml parser */
private final IXmlPullParser parser;
/**
@@ -44,10 +46,14 @@ public final class RootMarkupFilter impl
this.parser = parser;
}
- public final MarkupElement nextTag() throws ParseException
+ /**
+ * Skip all xml elements until the next tag.
+ */
+ @Override
+ public final MarkupElement nextElement() throws ParseException
{
ELEMENT_TYPE type;
- while ((type = next()) != ELEMENT_TYPE.TAG)
+ while ((type = parser.next()) != ELEMENT_TYPE.TAG)
{
if (type == ELEMENT_TYPE.NOT_INITIALIZED)
{
@@ -55,30 +61,33 @@ public final class RootMarkupFilter impl
}
}
- return parser.getElement();
+ return new ComponentTag(parser.getElement());
}
- public IMarkupFilter getNextFilter()
+ /**
+ * @return null. This is the root filter.
+ */
+ @Override
+ public final IMarkupFilter getNextFilter()
{
return null;
}
- public void setNextFilter(final IMarkupFilter parent)
+ /**
+ * This is the root filter. Operation not allowed. An exception will be thrown.
+ */
+ @Override
+ public final void setNextFilter(final IMarkupFilter parent)
{
throw new IllegalArgumentException("You can not set the parent with RootMarkupFilter.");
}
/**
- *
- * @return The next XML element
- * @throws ParseException
+ * Noop
*/
- private ELEMENT_TYPE next() throws ParseException
- {
- return parser.next();
- }
-
- public void postProcess(Markup markup)
+ @Override
+ protected MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
+ return tag;
}
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/StyleAndScriptIdentifier.java Sun Mar 20 12:43:27 2011
@@ -22,6 +22,7 @@ import org.apache.wicket.markup.Componen
import org.apache.wicket.markup.Markup;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.RawMarkup;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.parser.XmlPullParser;
@@ -29,7 +30,7 @@ import org.apache.wicket.markup.parser.X
*
* @author Juergen Donnerstag
*/
-public final class StyleAndScriptIdentifier extends BaseMarkupFilter
+public final class StyleAndScriptIdentifier extends AbstractMarkupFilter
{
private boolean found;
@@ -46,7 +47,7 @@ public final class StyleAndScriptIdentif
}
@Override
- protected final MarkupElement nextTag(final ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(final ComponentTag tag) throws ParseException
{
if (tag.getNamespace() != null)
{
@@ -63,7 +64,6 @@ public final class StyleAndScriptIdentif
tag.setModified(true);
}
- tag.setFlag(ComponentTag.ADD, true);
tag.setFlag(ComponentTag.RENDER_RAW, true);
tag.setUserData("STYLE_OR_SCRIPT", Boolean.TRUE);
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketLinkTagHandler.java Sun Mar 20 12:43:27 2011
@@ -27,6 +27,7 @@ import org.apache.wicket.markup.MarkupEl
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.WicketTag;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.resolver.IComponentResolver;
import org.apache.wicket.util.collections.ArrayListStack;
import org.apache.wicket.util.string.StringValueConversionException;
@@ -48,7 +49,7 @@ import org.apache.wicket.util.value.IVal
*
* @author Juergen Donnerstag
*/
-public class WicketLinkTagHandler extends BaseMarkupFilter implements IComponentResolver
+public class WicketLinkTagHandler extends AbstractMarkupFilter implements IComponentResolver
{
private static final long serialVersionUID = 1L;
@@ -90,7 +91,7 @@ public class WicketLinkTagHandler extend
}
@Override
- protected final MarkupElement nextTag(ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
// Only xml tags not already identified as Wicket components will be
// considered for autolinking. This is because it is assumed that Wicket
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketMessageTagHandler.java Sun Mar 20 12:43:27 2011
@@ -27,6 +27,7 @@ import org.apache.wicket.markup.MarkupEl
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
import org.apache.wicket.markup.html.WebComponent;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.markup.resolver.IComponentResolver;
import org.apache.wicket.util.string.Strings;
@@ -42,7 +43,9 @@ import org.apache.wicket.util.string.Str
* @author Juergen Donnerstag
* @author Igor Vaynberg
*/
-public final class WicketMessageTagHandler extends BaseMarkupFilter implements IComponentResolver
+public final class WicketMessageTagHandler extends AbstractMarkupFilter
+ implements
+ IComponentResolver
{
/** */
private static final long serialVersionUID = 1L;
@@ -66,7 +69,7 @@ public final class WicketMessageTagHandl
}
@Override
- protected final MarkupElement nextTag(ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
if (tag.isClose())
{
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketNamespaceHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketNamespaceHandler.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketNamespaceHandler.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketNamespaceHandler.java Sun Mar 20 12:43:27 2011
@@ -23,6 +23,7 @@ import org.apache.wicket.Application;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.MarkupResourceStream;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
import org.apache.wicket.util.value.IValueMap;
@@ -34,7 +35,7 @@ import org.apache.wicket.util.value.IVal
* @see org.apache.wicket.markup.MarkupParser
* @author Juergen Donnerstag
*/
-public final class WicketNamespaceHandler extends BaseMarkupFilter
+public final class WicketNamespaceHandler extends AbstractMarkupFilter
{
/** Wicket URI */
private static final String WICKET_URI = "http://wicket.apache.org";
@@ -59,7 +60,7 @@ public final class WicketNamespaceHandle
}
@Override
- protected final MarkupElement nextTag(ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
if (tag.isOpen() && "html".equals(tag.getName().toLowerCase()))
{
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketRemoveTagHandler.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketRemoveTagHandler.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketRemoveTagHandler.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketRemoveTagHandler.java Sun Mar 20 12:43:27 2011
@@ -22,6 +22,7 @@ import org.apache.wicket.markup.Componen
import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.WicketParseException;
import org.apache.wicket.markup.WicketTag;
+import org.apache.wicket.markup.parser.AbstractMarkupFilter;
/**
@@ -31,7 +32,7 @@ import org.apache.wicket.markup.WicketTa
*
* @author Juergen Donnerstag
*/
-public final class WicketRemoveTagHandler extends BaseMarkupFilter
+public final class WicketRemoveTagHandler extends AbstractMarkupFilter
{
/** */
public static final String REMOVE = "remove";
@@ -50,7 +51,7 @@ public final class WicketRemoveTagHandle
}
@Override
- protected final MarkupElement nextTag(ComponentTag tag) throws ParseException
+ protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
// If it is not a remove tag, than we are finished
if (!(tag instanceof WicketTag) || !((WicketTag)tag).isRemoveTag())
@@ -66,7 +67,7 @@ public final class WicketRemoveTagHandle
// Find the corresponding close tag and remove all tags in between
ComponentTag closeTag;
- while (null != (closeTag = (ComponentTag)getNextFilter().nextTag()))
+ while (null != (closeTag = (ComponentTag)getNextFilter().nextElement()))
{
// No Wicket component tags are allowed within the preview region.
// Wicket components will a component name assigned.
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketTagIdentifier.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketTagIdentifier.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketTagIdentifier.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/parser/filter/WicketTagIdentifier.java Sun Mar 20 12:43:27 2011
@@ -26,7 +26,6 @@ import org.apache.wicket.markup.MarkupRe
import org.apache.wicket.markup.WicketParseException;
import org.apache.wicket.markup.WicketTag;
import org.apache.wicket.markup.parser.AbstractMarkupFilter;
-import org.apache.wicket.markup.parser.XmlTag;
import org.apache.wicket.util.string.Strings;
@@ -68,30 +67,22 @@ public final class WicketTagIdentifier e
* or ComponentWicketTags. Both are subclasses of MarkupElement as well and both maintain a
* reference to the XmlTag. But no XmlTag is returned.
*
- * @see org.apache.wicket.markup.parser.IMarkupFilter#nextTag()
+ * @see org.apache.wicket.markup.parser.IMarkupFilter#nextElement()
* @return The next tag from markup to be processed. If null, no more tags are available
*/
- public MarkupElement nextTag() throws ParseException
+ @Override
+ protected MarkupElement onComponentTag(ComponentTag tag) throws ParseException
{
- // Get the next tag from the markup.
- // If null, no more tags are available
- XmlTag xmlTag = (XmlTag)getNextFilter().nextTag();
- if (xmlTag == null)
- {
- return xmlTag;
- }
-
final String namespace = markup.getWicketNamespace();
// If the form <tag wicket:id = "value"> is used
- final String wicketIdValue = xmlTag.getAttributes().getString(namespace + ":id");
+ final String wicketIdValue = tag.getAttributes().getString(namespace + ":id");
// Identify tags with Wicket namespace
- ComponentTag tag;
- if (namespace.equalsIgnoreCase(xmlTag.getNamespace()))
+ if (namespace.equalsIgnoreCase(tag.getNamespace()))
{
// It is <wicket:...>
- tag = new WicketTag(xmlTag);
+ tag = new WicketTag(tag.getXmlTag());
if (Strings.isEmpty(wicketIdValue))
{
@@ -102,19 +93,14 @@ public final class WicketTagIdentifier e
}
// If the tag is not a well-known wicket namespace tag
- if (!isWellKnown(xmlTag))
+ if (!isWellKnown(tag))
{
// give up
throw new WicketParseException("Unknown tag name with Wicket namespace: '" +
- xmlTag.getName() +
- "'. Might be you haven't installed the appropriate resolver?", tag);
+ tag.getName() + "'. Might be you haven't installed the appropriate resolver?",
+ tag);
}
}
- else
- {
- // Everything else, except tags with Wicket namespace
- tag = new ComponentTag(xmlTag);
- }
if (wicketIdValue != null)
{
@@ -151,14 +137,14 @@ public final class WicketTagIdentifier e
/**
*
- * @param xmlTag
+ * @param tag
* @return true, if name is known
*/
- private boolean isWellKnown(final XmlTag xmlTag)
+ private boolean isWellKnown(final ComponentTag tag)
{
for (String name : wellKnownTagNames)
{
- if (xmlTag.getName().equalsIgnoreCase(name))
+ if (tag.getName().equalsIgnoreCase(name))
{
return true;
}
Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/util/tester/TagTester.java Sun Mar 20 12:43:27 2011
@@ -21,7 +21,6 @@ import java.util.List;
import java.util.Map;
import org.apache.wicket.WicketRuntimeException;
-import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.parser.XmlPullParser;
import org.apache.wicket.markup.parser.XmlTag;
import org.apache.wicket.util.string.Strings;
@@ -261,7 +260,7 @@ public class TagTester
p.parse(markup);
XmlTag tag = null;
- while ((tag = (XmlTag)p.nextTag()) != null)
+ while ((tag = p.nextTag()) != null)
{
if (tagName.equalsIgnoreCase(tag.getName()))
{
@@ -366,7 +365,7 @@ public class TagTester
XmlPullParser parser = new XmlPullParser();
parser.parse(markup);
- MarkupElement elm = null;
+ XmlTag elm = null;
XmlTag openTag = null;
XmlTag closeTag = null;
int level = 0;
@@ -374,7 +373,7 @@ public class TagTester
{
if (elm instanceof XmlTag)
{
- XmlTag xmlTag = (XmlTag)elm;
+ XmlTag xmlTag = elm;
if (openTag == null)
{
@@ -495,7 +494,7 @@ public class TagTester
XmlPullParser parser = new XmlPullParser();
parser.parse(markup);
- MarkupElement elm = null;
+ XmlTag elm = null;
XmlTag openTag = null;
XmlTag closeTag = null;
int level = 0;
@@ -503,7 +502,7 @@ public class TagTester
{
if (elm instanceof XmlTag)
{
- XmlTag xmlTag = (XmlTag)elm;
+ XmlTag xmlTag = elm;
if (openTag == null)
{
IValueMap attributeMap = xmlTag.getAttributes();
Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/PanelTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/PanelTest.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/PanelTest.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/panel/PanelTest.java Sun Mar 20 12:43:27 2011
@@ -59,7 +59,7 @@ public class PanelTest extends WicketTes
hit = true;
assertNotNull(mex.getMarkupStream());
- assertTrue(mex.getMessage().contains("does not have a close tag"));
+ assertTrue(mex.getMessage().contains("Expected close tag for "));
assertTrue(mex.getMessage().contains("SimplePanel_1.html"));
}
assertTrue("Did expect a MarkupException", hit);
Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/XmlPullParserTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/XmlPullParserTest.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/XmlPullParserTest.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/XmlPullParserTest.java Sun Mar 20 12:43:27 2011
@@ -21,7 +21,6 @@ import java.text.ParseException;
import junit.framework.TestCase;
-import org.apache.wicket.markup.MarkupElement;
import org.apache.wicket.markup.parser.IXmlPullParser.ELEMENT_TYPE;
import org.apache.wicket.util.resource.StringResourceStream;
@@ -40,11 +39,11 @@ public class XmlPullParserTest extends T
{
final XmlPullParser parser = new XmlPullParser();
parser.parse("This is a text");
- MarkupElement elem = parser.nextTag();
+ XmlTag elem = parser.nextTag();
assertNull(elem);
parser.parse("<tag/>");
- XmlTag tag = (XmlTag)parser.nextTag();
+ XmlTag tag = parser.nextTag();
assertFalse(tag.isOpen());
// assertFalse(tag.isOpen("tag"));
// assertFalse(tag.isOpen("xxx"));
@@ -57,7 +56,7 @@ public class XmlPullParserTest extends T
// extra spaces
parser.parse("<tag ></tag >");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertTrue(tag.isOpen());
// assertTrue(tag.isOpen("tag"));
// assertFalse(tag.isOpen("xxx"));
@@ -68,7 +67,7 @@ public class XmlPullParserTest extends T
assertNull(tag.getNamespace());
assertEquals(0, tag.getAttributes().size());
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertFalse(tag.isOpen());
// assertFalse(tag.isOpen("tag"));
// assertFalse(tag.isOpen("xxx"));
@@ -80,44 +79,44 @@ public class XmlPullParserTest extends T
assertEquals(0, tag.getAttributes().size());
parser.parse("<tag> </tag>");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertTrue(tag.isClose());
parser.parse("xx <tag> yy </tag> zz");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertTrue(tag.isClose());
// XmlPullParser does NOT check that tags get properly closed
parser.parse("<tag>");
- tag = (XmlTag)parser.nextTag();
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
+ tag = parser.nextTag();
assertNull(elem);
parser.parse("<tag> <tag> <tag>");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
parser.parse("<ns:tag/>");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpenClose("tag"));
assertEquals("ns", tag.getNamespace());
assertEquals("tag", tag.getName());
parser.parse("<ns:tag></ns:tag>");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
assertEquals("ns", tag.getNamespace());
assertEquals("tag", tag.getName());
- XmlTag closeTag = (XmlTag)parser.nextTag();
+ XmlTag closeTag = parser.nextTag();
assertTrue(closeTag.isClose());
assertEquals("ns", closeTag.getNamespace());
assertEquals("tag", closeTag.getName());
@@ -134,20 +133,20 @@ public class XmlPullParserTest extends T
new StringResourceStream("<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>").getInputStream(),
null);
assertEquals("iso-8859-1", parser.getEncoding());
- XmlTag tag = (XmlTag)parser.nextTag();
+ XmlTag tag = parser.nextTag();
assertNull(tag);
parser.parse(new StringResourceStream(
"<?xml version=\"1.0\" encoding='iso-8859-1' ?> test test").getInputStream(), null);
assertEquals("iso-8859-1", parser.getEncoding());
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertNull(tag);
// re-order and move close (remove whitespaces
parser.parse(new StringResourceStream(
" <?xml encoding='iso-8859-1'version=\"1.0\"?> test test").getInputStream(), null);
assertEquals("iso-8859-1", parser.getEncoding());
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertNull(tag);
// attribute value must be enclosed by ""
@@ -173,7 +172,7 @@ public class XmlPullParserTest extends T
parser.parse(
new StringResourceStream("xxxx <?xml encoding='iso-8859-1' ?>").getInputStream(), null);
assertNull(parser.getEncoding());
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertNull(tag);
// no extra characters allowed before <?xml>
@@ -182,13 +181,13 @@ public class XmlPullParserTest extends T
new StringResourceStream("<!-- Comment --> <?xml encoding='iso-8859-1' ?>").getInputStream(),
null);
assertNull(parser.getEncoding());
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertNull(tag);
// 'test' is not a valid attribut. But we currently don't test it.
parser.parse(new StringResourceStream("<?xml test='123' >").getInputStream(), null);
assertNull(parser.getEncoding());
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertNull(tag);
}
@@ -200,44 +199,44 @@ public class XmlPullParserTest extends T
{
final XmlPullParser parser = new XmlPullParser();
parser.parse("<tag>");
- XmlTag tag = (XmlTag)parser.nextTag();
+ XmlTag tag = parser.nextTag();
assertEquals(0, tag.getAttributes().size());
// assertTrue(tag.isOpen("tag"));
assertFalse(tag.getAttributes().containsKey("attr"));
assertNull(tag.getAttributes().getString("attr"));
parser.parse("<tag attr='1234'>");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertEquals(1, tag.getAttributes().size());
assertTrue(tag.getAttributes().containsKey("attr"));
assertEquals("1234", tag.getAttributes().getString("attr"));
parser.parse("<tag attr=1234>");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertEquals(1, tag.getAttributes().size());
assertTrue(tag.getAttributes().containsKey("attr"));
assertEquals("1234", tag.getAttributes().getString("attr"));
parser.parse("<tag attr=1234 >");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertEquals(1, tag.getAttributes().size());
assertTrue(tag.getAttributes().containsKey("attr"));
assertEquals("1234", tag.getAttributes().getString("attr"));
parser.parse("<tag attr-withHypen=1234 >");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertEquals(1, tag.getAttributes().size());
assertTrue(tag.getAttributes().containsKey("attr-withHypen"));
assertEquals("1234", tag.getAttributes().getString("attr-withHypen"));
parser.parse("<tag attr=\"1234\">");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertEquals(1, tag.getAttributes().size());
assertTrue(tag.getAttributes().containsKey("attr"));
assertEquals("1234", tag.getAttributes().getString("attr"));
parser.parse("<tag attr='1234' test='23'>");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertEquals(2, tag.getAttributes().size());
assertTrue(tag.getAttributes().containsKey("attr"));
assertEquals("1234", tag.getAttributes().getString("attr"));
@@ -248,7 +247,7 @@ public class XmlPullParserTest extends T
Exception ex = null;
try
{
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
}
catch (ParseException e)
{
@@ -265,24 +264,24 @@ public class XmlPullParserTest extends T
{
final XmlPullParser parser = new XmlPullParser();
parser.parse("<!-- test --><tag>");
- XmlTag tag = (XmlTag)parser.nextTag();
+ XmlTag tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
parser.parse("<!-- test --><tag> aaa <!-- test 1 --> bbb <tag> <!-- test --> </tag>");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertTrue(tag.isClose());
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
assertNull(tag);
// As you can see, XmlPullParser is really a shallow parser only
parser.parse("<!-- test --><tag> aaa <?tag test 1 ?> bbb <tag> <!DOCTYPE test > </tag>");
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
- tag = (XmlTag)parser.nextTag();
+ tag = parser.nextTag();
// assertTrue(tag.isOpen("tag"));
tag = (XmlTag)parser.nextTag();
assertTrue(tag.isClose());
Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpanderTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpanderTest.java?rev=1083424&r1=1083423&r2=1083424&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpanderTest.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/parser/filter/OpenCloseTagExpanderTest.java Sun Mar 20 12:43:27 2011
@@ -23,7 +23,6 @@ import org.apache.wicket.WicketTestCase;
*/
public class OpenCloseTagExpanderTest extends WicketTestCase
{
-
/**
* @throws Exception
*/
@@ -32,5 +31,4 @@ public class OpenCloseTagExpanderTest ex
executeTest(OpenCloseTagExpanderPage_1.class,
"OpenCloseTagExpanderPageExpectedResult_1.html");
}
-
}