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.

Reply via email to