Changeset 3592


Ignore:
Timestamp:
09/17/13 16:33:59 (11 years ago)
Author:
mwindhouwer
Message:

M module.xml
M org/isocat/sloot/accessor/ResolveArguments.java

  • added an optional argument skip list
  • by default sloot-operator is skipped
  • zero or more skip arguments are allowed
  • each skip argument is interpreted as a space seperated list of names of arguments to skip
Location:
cats/shared/urn.org.isocat.sloot/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cats/shared/urn.org.isocat.sloot/trunk/module.xml

    r3589 r3592  
    2020         <rewrite>res:/pub/$1</rewrite>
    2121      </fileset>
    22       <!--<accessor>
     22      <accessor>
    2323         <id>sloot.dpml.resolve-arguments</id>
    2424         <class>org.isocat.sloot.accessor.ResolveArguments</class>
     
    2626            <active>
    2727               <identifier>active:sloot.dpml.resolve-arguments</identifier>
     28               <argument name="skip" min="0" max="*"/>
    2829            </active>
    2930         </grammar>
    30       </accessor>-->
     31      </accessor>
    3132      <mapper>
    3233         <config>
     
    126127               </request>
    127128            </endpoint>
    128             <endpoint>
    129                <grammar>
    130                   <active>
    131                      <identifier>active:sloot.dpml.resolve-arguments</identifier>
    132                      <argument name="arguments">arg:arguments</argument>
    133                   </active>
    134                </grammar>
    135                <request>
    136                   <identifier>active:xslt2</identifier>
    137                   <argument name="operator">res:/tools/resolve-dpml-args.xsl</argument>
    138                   <argument name="operand">arg:arguments</argument>
    139                </request>
    140             </endpoint>
    141129         </config>
    142130         <space>
  • cats/shared/urn.org.isocat.sloot/trunk/org/isocat/sloot/accessor/ResolveArguments.java

    r3587 r3592  
    2424import org.netkernel.layer0.representation.impl.HDSBuilder;
    2525import org.netkernel.module.standard.endpoint.StandardAccessorImpl;
     26import java.util.Arrays;
     27import java.util.HashSet;
    2628
    2729public class ResolveArguments extends StandardAccessorImpl
     
    3234
    3335        @Override
    34         public void onSource(INKFRequestContext context) throws Exception
    35         {  IHDSNode args = context.sourcePrimary(IHDSNode.class);
    36            HDSBuilder builder = new HDSBuilder();
    37            builder.pushNode("arguments");
    38            for (IHDSNode arg : args.getNodes("/arguments/*"))
    39            {  builder.addNode(arg.getName(),context.source((String)arg.getValue()));
     36        public void onSource(INKFRequestContext aContext) throws Exception
     37        {  HashSet<String> mSkipSet = new HashSet<String>();
     38           if (aContext.getThisRequest().argumentExists("skip"))
     39           {   for (String mSkip : aContext.getThisRequest().getArgumentValues("skip"))
     40               {   mSkipSet.addAll(Arrays.asList(aContext.source(mSkip,String.class).split("\\s+")));
     41               }
    4042           }
    41            context.createResponseFrom(builder.getRoot());
     43           else
     44           {   mSkipSet.add("sloot-operator");
     45           }
     46           IHDSNode mArgs = aContext.sourcePrimary(IHDSNode.class);
     47           HDSBuilder mBuilder = new HDSBuilder();
     48           mBuilder.pushNode("arguments");
     49           for (IHDSNode mArg : mArgs.getNodes("/arguments/*"))
     50           {   String mName = mArg.getName();
     51               if (!mSkipSet.contains(mName))
     52               {   mBuilder.addNode(mName,aContext.source((String)mArg.getValue()));
     53               }
     54           }
     55           aContext.createResponseFrom(mBuilder.getRoot());
    4256        }
    4357}
Note: See TracChangeset for help on using the changeset viewer.