I would use a ListBuffer as the underlying representation. I would call the
methods "append" and "prepend" (LiftRules.snippet.append,
LiftRules.dispatch.append, etc.). I would also make them immutable
as-needed. ListBuffer caches toList so that it's very efficient if you don't
append/prepend in between calls to toList.

On Tue, Dec 9, 2008 at 2:20 PM, Marius <[EMAIL PROTECTED]> wrote:

>
> I'm not sure if this is the case ... if we want context dependent
> Snippets then probably using loc snippets is the right place
>
> How about something like:
>
> abstract class RulesSeq[T] {
>  var rules : List[T] = Nil
>
>  private def safe_?(f : => Any) {
>    doneBoot match {
>      case false => f
>      case _ => throw new IllegalStateException("Can not modify after
> boot.");
>    }
>  }
>
>  def prependRule(r: T) {
>    safe_? {
>      rules = r :: rules
>    }
>  }
>
>  def appendRule(r: T) {
>    safe_? {
>      rules = rules ::: List(r)
>    }
>  }
> }
>
> Br's,
> marius
>
> On Dec 9, 10:12 pm, "Jorge Ortiz" <[EMAIL PROTECTED]> wrote:
> > Hmmmmm... I can think of situations where such mutations are useful after
> > Boot (app/prependSnippet comes to mind). Maybe they can be made immutable
> > (.toList) as necessary?
> >
> > --j
> >
> > On Tue, Dec 9, 2008 at 2:01 PM, David Pollak
> > <[EMAIL PROTECTED]>wrote:
> >
> > > And we should freeze the lists after Boot is finished.  The permutation
> > > methods should throw exceptions post-boot
> >
> > > On Dec 9, 2008 11:39 AM, "Jorge Ortiz" <[EMAIL PROTECTED]> wrote:
> >
> > > Seems like prime opportunity for an abstraction...
> >
> > > Why not make them (*gasp*) mutable data structures with prepend/append
> > > methods?
> >
> > > --j
> >
> > > On Tue, Dec 9, 2008 at 1:35 PM, Marius <[EMAIL PROTECTED]>
> wrote: >
> > > > > Hi. > > Unfortunatel...
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" 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/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to