Am Di., 19. Sept. 2023 um 08:51 Uhr schrieb Renny Koshy <rko...@gmail.com>:

> You could also add your own variable resolution code.


Thanks. Interesting. Any hint or link to github source code where to add
this?


> If it can't find the
> variable, then resolve that as the template string for that variable. So
> "myvar" resolves to "${myvar}" if it can't be found
>
> On Mon, Sep 18, 2023, 7:24 PM Christoph Rüger <c.rue...@synesty.com>
> wrote:
>
> > Am Mo., 18. Sept. 2023 um 19:55 Uhr schrieb Alon Ziv
> > <nola...@google.com.invalid>:
> >
> > > I'm not sure such automatic behavior is feasible.
> > >
> > > Consider e.g. a template like
> > ${conditionVariable?then(dateVariable?iso_local("Europe/Rome"),
> > > "UNKNOWN")}
> > > What would the automatic logic do if conditionVariable is null, but
> > > dateVariable is set? Or the opposite? (Sure, we may construct
> equivalent
> > > expressions for such cases - but it's really complex, and I don't
> believe
> > > it's feasible in the *general* case).
> > >
> >
> > I guess you are right. Just wanted to put that up for brainstorming.
> > It just came up during discussion today, and there were ideas like
> "could
> > we just use reg-ex to extract the parts we can render in phase 1" and the
> > rest in phase2. etc. So I thought I might ask here for alternatives :)
> >
> > In our case we have much control over the variables which are allowed to
> > be inserted in the templates string. So we could at least validate that
> > people do enter complex expressions, but just use simple pre-defined
> > variables.
> >
> > I think ${variableB!r"${variableB}"} is a good approach so far. We may
> > construct that under the hood somehow and let people automatically insert
> > this variable-text on click.
> >
> > Anyway, thanks for the ideas :)
> >
> >
> > >
> > > On Mon, Sep 18, 2023 at 8:32 PM Christoph Rüger <c.rue...@synesty.com>
> > > wrote:
> > >
> > >> Am Mo., 18. Sept. 2023 um 18:12 Uhr schrieb Alon Ziv
> > >> <nola...@google.com.invalid>:
> > >>
> > >> > You can achieve this via template magic already:
> > >> >
> > >> > ${variableB!r"${variableB}"}
> > >> >
> > >>
> > >> Thanks, good to know.
> > >> But I am looking for something where the template does not need to be
> > >> changed.
> > >> Basically this behavior but automatically done.
> > >>
> > >>
> > >> >
> > >> > On Mon, Sep 18, 2023 at 7:03 PM Christoph Rüger <
> c.rue...@synesty.com
> > >
> > >> > wrote:
> > >> >
> > >> >> Hi,
> > >> >> we may have a rather special case and are looking for ideas.
> > >> >> We would like to to keep the placeholders as they are in case of
> null
> > >> >> values.
> > >> >>
> > >> >> Assume the following template:
> > >> >>
> > >> >> ${metaHeaderDataA}
> > >> >> ${variableB}
> > >> >>
> > >> >> We would like the following behavior:
> > >> >>
> > >> >> *1st render phase:*
> > >> >> data.put("metaHeaderDataA", "foo")
> > >> >> environment.process(template);
> > >> >>
> > >> >> Expected Output:
> > >> >> foo
> > >> >> ${variableB}
> > >> >>
> > >> >> The we want to render this output again with:
> > >> >>
> > >> >> *2nd render phase:*
> > >> >> data.put("variableB", "bar")
> > >> >> environment.process(template);
> > >> >>
> > >> >> Expected final Output:
> > >> >> foo
> > >> >> bar
> > >> >>
> > >> >> As you see there 2 two rendering phases involved. In phase 1 only
> > some
> > >> >> variables are known (metaHeaderDataA).
> > >> >> The other variables come later.
> > >> >> We would like keep the placeholders in the 1st rendering phase, if
> > >> there
> > >> >> is
> > >> >> no value or null value in the data model, so that they can be
> > rendered
> > >> >> later.
> > >> >>
> > >> >> I think this is very special.
> > >> >> So I am just  thinking, is this something which could
> (theoretically)
> > >> be a
> > >> >> configurable option maybe on a per-Template-object level (Java
> Code)?
> > >> Or
> > >> >> is
> > >> >> this something impossible to do?
> > >> >>
> > >> >> Or any other workaround ideas?
> > >> >>
> > >> >>
> > >> >> Thanks
> > >> >> Christoph
> > >> >>
> > >>
> > >>
> >
> > --
> > Synesty GmbH
> > Berggasse 1
> > 07745 Jena
> > Tel.: +49 3641 5596493Internet:
> > https://synesty.com <https://synesty.com>
> > Informationen zum Datenschutz:
> > https://synesty.com/datenschutz <https://synesty.com/datenschutz>
> >
> > Geschäftsführer: Christoph Rüger
> > Unternehmenssitz: Jena
> > Handelsregister B
> > beim Amtsgericht: Jena
> > Handelsregister-Nummer: HRB 508766
> > Ust-IdNr.:
> > DE287564982
> >
>


-- 
Christoph Rüger, Geschäftsführer
Synesty <https://synesty.com/> - Anbinden und Automatisieren ohne
Programmieren

-- 
Synesty GmbH
Berggasse 1
07745 Jena
Tel.: +49 3641 5596493Internet: 
https://synesty.com <https://synesty.com>
Informationen zum Datenschutz: 
https://synesty.com/datenschutz <https://synesty.com/datenschutz>

Geschäftsführer: Christoph Rüger
Unternehmenssitz: Jena
Handelsregister B 
beim Amtsgericht: Jena
Handelsregister-Nummer: HRB 508766
Ust-IdNr.: 
DE287564982

Reply via email to