Comments (5)
👍 to
a more generic (disable set, disable mod, disable get) generation control
from derive4j.
I can add an enum
Derivation = Getters | Setters | FluentPatternMatching
and a new attribute Derivation[] omit() default {}
to @Data
Also moving all public static methods at the top of the generated file could help get important stuff under the 2500 lines threshold of Idea.
@talios, WDYT?
from derive4j.
Derivation
sounds good. as does moving the static methods to the top.
Would it be worth considering genererating the setters/mods/matching into separate classes as well? Having the single class is nice, but may not scale?
Ideally one should probably not have this amount of cases in a single set of cases tho, which is one of the reasons I was looking at switching to derive4j in for this piece of code ( aside from jADT being unmaintained ).
Since we're starting to get a lot of commands/cases in this piece of code ( essentially an immutable set of events in a CQRS style system, but much more minimal ) we're wanting to look at breaking them into smaller set's of cases with a common super interface which dervie4j's syntax offers quite nicely.
from derive4j.
@talios
I'm going to add the following annotation property in @Derive
:
public @interface Derive {
// ...
Make[] make() default { lambdaVisitor, constructors, getters, modifiers,
lazyConstructor, patternMatching, catamorphism };
// ...
}
So that one can override the default and make derive4j only generate what is explicitly defined.
Is that ok for you?
(Derive4j will take care of dependencies. ie if you specify only modifiers
then constructors
will be automatically generated as well even if not mentioned explicitly)
from derive4j.
+10 that looks good to me.
from derive4j.
Related Issues (20)
- NoSuchElementException after upgrading from 0.10.2 to 1.1.1
- StackOverflow in derivingConfig when @Data annotation is used HOT 1
- Data constructors: allow referencing no yet generated types. HOT 1
- Extension APIs HOT 1
- Could not find instance derivator for fj.Equal and InstanceConfig(Optional.empty, Optional.empty) HOT 2
- @ExportAsPublic does not work correctly on (static) nested classes
- Add Vavr flavour HOT 4
- Improve lazy implementation to support stack-safe evaluation of nested Lazy values
- Ignoring arguments while pattern matching HOT 4
- Random bug : compilation pb with static imports of constructors HOT 4
- Supporting subtypes HOT 4
- Compilation times with Derive4J-generated code HOT 9
- Type classes derivation : wildcards are problematic HOT 2
- DSL example Pass compile but can't run . HOT 5
- Type classes derivation : arrays (or varargs) are problematic HOT 1
- Add Cycops flavour HOT 1
- Feature request: Support Java 11
- Any example about Lens support for VAVR? HOT 4
- Usage in mixed scala/java codebase
- More compact code for equals methods HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from derive4j.