Giter VIP home page Giter VIP logo

Comments (10)

elucash avatar elucash commented on May 26, 2024

Indeed, there is no way to skip fields currently. Even newly introduced @GenerateAuxiliary have nothing to do with skipping attributes for marshaling.
@GenerateMarshaled(ignore = true) is pretty straightforward, just like @Ignore-like alternative.
BTW what do you think, should we prohibit ignoring attributes which are required to be set using builder? (so we able to unmarshal object back)

from immutables.

jfairley avatar jfairley commented on May 26, 2024

I was actually thinking about this just before I saw your email.

Assuming an attribute is ignored for response JSON marshaling, I would expect this attribute to be missing from the future incoming request JSON. In order to preserve existing pre-check conditions, I think it is reasonable to require that any ignored attribute also be optional.

Good 👍

@GenerateMarshaled(ignore = true)
public abstract Optional<String> name();

Bad 👎

@GenerateMarshaled(ignore = true)
public abstract String name();

Ideally, there would be a compile-time error explaining to the user what they did wrong.

from immutables.

jfairley avatar jfairley commented on May 26, 2024

BTW, what editor do you use? I was tinkering with the source code to see if "ignore" would even be feasible. Without syntax highlighting, I found it very easy to lose my place in those .tjs.

from immutables.

elucash avatar elucash commented on May 26, 2024

Yeah, check for non-required attribute need to be added.
I'll stick to @GenerateMarshaled(ignore = true) for now, but for some future releases I'm planning to revise it to something akin @Json.Ignore along with other changes (see #29)

RE: BTW
I use Eclipse with no highlighting, still it's more readable and practical than markup-suited template engines imho. (I saw Google Auto'ers use additional newlines in *.vm to compensate for low readability, yuck..). @ivysharev was able to setup custom syntax in IDEA, just by making keywords: [if, [else, [/if, [elseif, [foreach, [/foreach, [template, [/template, [let, [/let, [apply, [require, and ]. I will look into sublime syntax sometime after.
Some thoughts about current and future templating could be found in #17.

from immutables.

jfairley avatar jfairley commented on May 26, 2024

I like the way you're thinking with #29.

from immutables.

elucash avatar elucash commented on May 26, 2024

It's implemented now in the new, yet to be released, version as @Json.Ignore. I want to add some additional features/refinements, along with some documentation, before a release.

from immutables.

jfairley avatar jfairley commented on May 26, 2024

Good to know. Thanks!

Is 1.0 weeks away or months away?

from immutables.

elucash avatar elucash commented on May 26, 2024

I will release this new, significantly updated version this week, it will still be 0.3X.
For the 1.0 I want to have #15, and that could be archived in a month or so.
But anyway, those 0.3Xs will be stable enough with no breaking API changes planned for 1.0.

from immutables.

jfairley avatar jfairley commented on May 26, 2024

👍 thanks!

from immutables.

elucash avatar elucash commented on May 26, 2024

I dared to release 1.0 now rather than in a month, just enough of testing and polishing.
Look for @Json.Ignore annotation. Be aware of other API changes. Thank you for reporting this! Other folks also requested ignore functionality, so it was just in time. Any feedback welcome.

from immutables.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.