vgritsenko    02/03/14 11:53:30

  Modified:    src/documentation/xdocs/userdocs/concepts
                        matchers_selectors.xml
  Log:
  quick and dirty fix: matcher factories are long gone
  
  Revision  Changes    Path
  1.3       +19 -81    
xml-cocoon2/src/documentation/xdocs/userdocs/concepts/matchers_selectors.xml
  
  Index: matchers_selectors.xml
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/documentation/xdocs/userdocs/concepts/matchers_selectors.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- matchers_selectors.xml    5 Feb 2002 01:46:44 -0000       1.2
  +++ matchers_selectors.xml    14 Mar 2002 19:53:30 -0000      1.3
  @@ -97,7 +97,7 @@
   Actions should be used to <em>"do"</em> something, not to chose
   between different sub pipelines. That should be done only, if an error
   occurred and you cannot continue the regular pipeline. Of course this
  -is a fuzzy criterion and using an action to chose between exactly two
  +is a fuzzy criterion and using an action to choose between exactly two
   sub pipelines is a very common task i.e. for authentication. Also,
   often actions have no nested elements and the further processing is
   not affected by the result of the action.  </p>
  @@ -115,10 +115,10 @@
   
      <map:matchers default="wildcard">
        <map:matcher name="wildcard"
  -               src="org.apache.cocoon.matching.WildcardURIMatcherFactory"/>
  +               src="org.apache.cocoon.matching.WildcardURIMatcher"/>
        ...
        <map:matcher name="next-page"
  -     src="org.apache.cocoon.matching.WildcardParameterValueMatcherFactory">
  +     src="org.apache.cocoon.matching.WildcardRequestParameterMatcher">
           <map:parameter name="parameter-name" value="next-state"/>
        </map:matcher>
      </map:matchers>
  @@ -132,8 +132,8 @@
   ]]>
   </source>
   <p>Matchers are given a short name (e.g, "wildcard") and of course the
  -name of the JAVA class that implements the matcher or a matcher
  -factory. In addition, parameters can be defined as well.
  +name of the JAVA class that implements the matcher. In addition,
  +parameters can be defined as well.
   </p>
   <p>
   One matcher may be defined as default matcher, so whenever a matcher
  @@ -170,6 +170,7 @@
   <map:match type="sessionstate" pattern="edit*">
     <!-- here you could insert parameters for the above matcher -->
     <map:parameter name="attribute-name" value="__sessionstate"/>
  +
     <map:match type="next-page" pattern="ok*">
       <!-- do something here, eg. database updates -->
       <map:call resource="simple-page1"/>
  @@ -194,15 +195,13 @@
      ...
     <map:selectors default="browser">
      <map:selector name="browser"
  -             src="org.apache.cocoon.selection.BrowserSelectorFactory">
  +     src="org.apache.cocoon.selection.BrowserSelector">
       <browser name="explorer" useragent="MSIE"/>
       <browser name="lynx" useragent="Lynx"/>
       <browser name="netscape" useragent="Mozilla"/>
      </map:selector>
  -   <map:selector name="coded"
  -             src="org.apache.cocoon.selection.CodedSelectorFactory"/>
      <map:selector name="parameter"
  -             src="org.apache.cocoon.selection.ParameterSelectorFactory"/>
  +     src="org.apache.cocoon.selection.ParameterSelector"/>
     </map:selectors>
   
     ...
  @@ -233,7 +232,8 @@
             <map:transform src="stylesheets/w3c-2-msie.xsl"/>
           </map:when>
           <map:when test="lynx">
  -          <map:transform src="stylesheets/dynamic-page2html-text.xsl"/>
  +          <map:transform
  +            src="stylesheets/dynamic-page2html-text.xsl"/>
             <map:serialize/>
           </map:when>
           <map:when test="netscape">
  @@ -244,7 +244,8 @@
           </map:otherwise>
         </map:select>
   
  -      <map:transform src="stylesheets/dynamic-page2html.xsl"/>
  +      <map:transform
  +        src="stylesheets/dynamic-page2html.xsl"/>
         <map:serialize/>
       </map:match>
   
  @@ -262,8 +263,8 @@
   <s2 title="Matchers">
   <p>
   Since the basic structure and the assumptions are very similar, we
  -look first at matchers and matcher factories and point out the
  -differences to selectors at the end.
  +look first at matchers and point out the differences to selectors
  +at the end.
   </p>
   <p>
   Matchers need to implement the org.apache.cocoon.matching.Matcher
  @@ -276,66 +277,6 @@
   <code>org.apache.avalon.framework.configuration.Configurable</code>
   interface.
   </p>
  -<s3 title="MatcherFactories">
  -<p>
  -Matcher factories generate two distinct parts of source code: a
  -processed pattern stored in a global variable in the sitemap and a
  -method used to do the actual matching. Since the global variable can
  -be of an arbitrary type and it is an argument for the matcher method,
  -it is, too, configurable.
  -</p>
  -<p>
  -For each uniquely named matcher the function
  -<code>generateParameterSource</code> and
  -<code>generateMethodSource</code> are called exactly once, while
  -<code>generateClassSource</code> is called for every use of the
  -generated matcher in sitemap pipelines.
  -</p>
  -<p>
  -Note that you may use the same matcher factory (or the same matcher or
  -whatever) and declare it with different names. Although they will be
  -instances of the very same class they would be different instances and
  -thus another matcher method would be generated, e.g. using different
  -configuration parameters.
  -</p>
  -<p>
  -The generated matcher method looks like
  -</p>
  -<source>
  -<![CDATA[
  -private Map wildcardMatch (int [] pattern, Map objectModel,
  -                           Parameters parameters) {
  -
  -  // this has been generated by generateMethodSource ->
  -  HashMap map = new HashMap();
  -  String uri = XSPRequestHelper.getSitemapURI(objectModel);
  -  if (uri.startsWith("/"))
  -    uri = uri.substring(1);
  -  if (org.apache.cocoon.matching.helpers.WildcardURIMatcher.match (
  -        map, uri, pattern)) {
  -    return map;
  -  } else {
  -    return null;
  -  }
  -  // <- this has been generated by generateMethodSource
  -}
  -]]>
  -</source>
  -<p>
  -The method takes three arguments: the first is the aforementioned by
  -<code>generateClassSource</code> processed pattern, the current environment
  -(<code>objectModel</code>), and the parameters given for the corresponding match
  -element. In the example above for nested matchers, this would be the
  -<code><![CDATA[<map:parameter name="attribute-name" 
value="__sessionstate"/>]]></code>. The 
  -<code>int []</code> part of the method signature was generated by
  -<code>generateParameterSource</code>.
  -</p>
  -<p>
  -To configure the generated matcher, global configuration parameters
  -can be used to create different sources. To read global configuration
  -parameters, dom2 is used, you cannot use the usual avalon classes for
  -this.
  -</p>
   <p>
   Local configuration parameters are avalon parameters and thus can be
   easily read and used with the generated matcher method.
  @@ -347,16 +288,13 @@
   </p>
   <p>
   The easiest way to write your own matcher would be to base it upon
  -org.apache.cocoon.matching.WildcardURIMatcherFactory and override the
  -generateMethodSource method with your own.
  -</p>
  -<p>
  -Personally, I like factories more because they are easily written and
  -global configuration options can be incorporated in the generated
  -source thus the generated source is less complex than a similar
  -versatile matcher would be.
  +org.apache.cocoon.matching.WildcardURIMatcher and override the
  +getMatchString method with your own.
   </p>
  +<!-- FIXME: Put some meat inside
  +<s3 title="Preparable Matchers">
   </s3>
  +-->
   </s2>
   <s2 title="Selectors">
   <p>
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to