Can you push your changes to a fork in github, so we can review them? Also, you should only catch BreakException, not all exceptions.
-- Mauricio On Tue, Mar 22, 2011 at 2:24 AM, hatjhie <[email protected]> wrote: > Hi All, > > I have changed accordingly based on the java file in JIRA, but I've > encountered this problem > > Encountered "\r\n" at line 37, column 31.Was expecting one of: > "(" ... <WH > ITESPACE> ... when I use my "#break" > > :D > > Break.cs > > namespace NVelocity.Runtime.Directive > { > public class Break : Directive > { > /** > * simple init - init the tree and get the elementKey from > * the AST > * @param rs > * @param context > * @param node > * @throws TemplateInitException > */ > public override void Init(IRuntimeServices rs, > IInternalContextAdapter context, INode node) > //throws TemplateInitException > { > base.Init(rs, context, node); > } > > public override string Name > { > get > { > return "break"; > } > set { throw new NotSupportedException(); } > } > > /** > * Return type of this directive. > * @return The type of this directive. > */ > public override DirectiveType Type > { > get > { > return DirectiveType.LINE; > } > } > > > /** > * Break directive does not actually do any rendering. > * > * This directive throws a BreakException (RuntimeException) > which > * signals foreach directive to break out of the loop. Note > that this > * directive does not verify that it is being called inside a > foreach > * loop. > * > * @param context > * @param writer > * @param node > * @return true if the directive rendered successfully. > * @throws IOException > * @throws MethodInvocationException > * @throws ResourceNotFoundException > * @throws ParseErrorException > */ > public override bool Render(IInternalContextAdapter context, > TextWriter writer, NVelocity.Runtime.Parser.Node.INode node) > { > throw new BreakException(); > } > } > > public class BreakException : System.Exception > { > > } > } > > and in the Foreach.cs, I modified this part: > > try > { > if (isFancyLoop) > { > if (counter == counterInitialValue) > { > > ProcessSection(ForeachSectionEnum.BeforeAll, sections, context, > writer); > } > else > { > > ProcessSection(ForeachSectionEnum.Between, sections, context, writer); > } > > ProcessSection(ForeachSectionEnum.Before, > sections, context, writer); > > // since 1st item is zero we invert odd/ > even > if ((counter - counterInitialValue) % 2 == > 0) > { > ProcessSection(ForeachSectionEnum.Odd, > sections, context, writer); > } > else > { > > ProcessSection(ForeachSectionEnum.Even, sections, context, writer); > } > > ProcessSection(ForeachSectionEnum.Each, > sections, context, writer); > > ProcessSection(ForeachSectionEnum.After, > sections, context, writer); > } > else > { > bodyNode.Render(context, writer); > } > } > catch > { > bodyNode.Render(context, writer); > break; > } > counter++; > > Any suggestion about this? I'm very new about this NVelocity but I > found that the component's very useful :D > > Thanks for your helps > > Best Regards, > Hatjhie > > > On Mar 22, 11:02 am, hatjhie <[email protected]> wrote: > > Hi Mauricio, > > > > Thanks a lot for your helps. > > > > I'll try this and once I've tried, I'll update the result. > > > > Best Regards, > > Hatjhie > > > > On Mar 22, 10:00 am, Mauricio Scheffer <[email protected]> > > wrote: > > > > > There are two attached files in the JIRA issue, they implement the > feature > > > in Apache Velocity. > > > Download these patches and port them to .NET and NVelocity. > > > NVelocity source code is here: > https://github.com/castleproject/NVelocity > > > > > Cheers, > > > Mauricio > > > > > On Mon, Mar 21, 2011 at 10:49 PM, hatjhie <[email protected]> > wrote: > > > > Hi All, > > > > > > Thanks for your kind response. > > > > > > I read that there is a break statement in > > > > > http://velocity.apache.org/engine/releases/velocity-1.7/user-guide.html > > > > > > However, I'm using Castle NVelocity whose version is 1.1.1.0 for .NET > > > > Framework. > > > > > > Any idea how to implement > > > >https://issues.apache.org/jira/browse/VELOCITY-612 > > > > in Castle NVelocity? > > > > > > Thanks a lot for your helps. > > > > > > Best Regards, > > > > Hatjhie > > > > > > On Mar 21, 9:39 pm, Mauricio Scheffer <[email protected]> > > > > wrote: > > > > > TTBOMK #break is not implemented in NVelocity, you might be > interested in > > > > > porting it from Apache Velocity (seehttps:// > > > > issues.apache.org/jira/browse/VELOCITY-612) > > > > > I agree with Patrick though, it's best if you can filter your data > before > > > > > feeding it to the template... > > > > > > > -- > > > > > Mauricio > > > > > > > On Mon, Mar 21, 2011 at 5:35 AM, hatjhie < > [email protected]> > > > > wrote: > > > > > > Hi All, > > > > > > > > In NVelocity, it seems like #break operator is not working in my > side. > > > > > > > > Is it not supported yet in this version or should I do any setup > > > > > > before I use it? > > > > > > > > Thanks for your helps. > > > > > > > > Best Regards, > > > > > > Hatjhie > > > > > > > > -- > > > > > > You received this message because you are subscribed to the > Google > > > > Groups > > > > > > "Castle Project Users" group. > > > > > > To post to this group, send email to > > > > [email protected] > > > > > > . > > > > > > To unsubscribe from this group, send email to > > > > > > [email protected]. > > > > > > For more options, visit this group at > > > > > >http://groups.google.com/group/castle-project-users?hl=en. > > > > > > -- > > > > You received this message because you are subscribed to the Google > Groups > > > > "Castle Project Users" group. > > > > To post to this group, send email to > [email protected] > > > > . > > > > To unsubscribe from this group, send email to > > > > [email protected]. > > > > For more options, visit this group at > > > >http://groups.google.com/group/castle-project-users?hl=en. > > > > > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Users" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/castle-project-users?hl=en. > > -- You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en.
