Comments (5)
Ok thanks.
The suggested solutions works with version 4.1.0
(i got some exception when using 3.6.0 in our main project, so I just bumped up the version)
from instancio.
Thanks for raising this issue and creating a sample project. It helps a lot!
Unfortunately, this usage is not supported because CollectionGenerator
and Global
are internal classes. Anything under internal
package or annotated with @InternalApi
is not intended to be used by users.
Based on the sample project, I assume the goal is to generate a collection of size 1 (by default) for MyClass.values
. If that's the case, you could use the provided Generators
instance in your SPI implementation:
public class MyClassGenerator implements InstancioServiceProvider {
@Override
public InstancioServiceProvider.GeneratorProvider getGeneratorProvider() {
return (node, generators) -> {
if (matchesNode(node)) {
// 'generators' provides access to all built-in generators
return generators.collection().size(1);
}
return null;
};
}
private boolean matchesNode(Node node) {
Field field = node.getField();
return field != null
&& MyClass.class.isAssignableFrom(field.getDeclaringClass())
&& node.getTargetClass() == List.class;
}
}
Does this work for you use case?
from instancio.
Hey,
thanks for the answer, i did not see the annotation.
Just to clarify: All custom Generators should just implement the Generator interface, correct?
(My code provided is not a real Generator since it just delegates, so it shouldnt implement the interface)
from instancio.
All custom Generators should just implement the Generator interface, correct?
That's right, all generators should implement the Generator
interface. The Global
class contains an internal instance of Random
and Settings
. Since you already get those objects using public APIs, the Global
class shouldn't be needed for a custom generator. To delegate to the collection generator, you can use the collection()
method as above.
from instancio.
i got some exception when using 3.6.0 in our main project, so I just bumped up the version
Thanks for the update. This makes sense now. There was a fix for this bug not too long ago:
Let me know if you run into other issues.
from instancio.
Related Issues (20)
- Chained field name for Select HOT 3
- Add support for Hibernate Validator `@INN` annotation
- Add support for Hibernate Validator `@TituloEleitoral` annotation
- Add support for Hibernate Validator `@CPF` annotation
- Add support for Hibernate Validator `@CNPJ` annotation
- InstancioExtension should be made aware of `MANUAL` and `WITH_SETTINGS_BUILDER` seed sources HOT 4
- `instancio-quickcheck`: docs misuse "property" term HOT 3
- `instancio-quickcheck`: add support for reporting seed value and reproducing failed tests
- Instancio sometimes fills a field (child node) of a type even though that type has a custom generator HOT 2
- Remove calls to internal JUnit APIs from `instancio-quickcheck`
- Support for `ElementType.TYPE_USE` bean validation annotations
- Add OSGi test module
- Move JPMS tests to `instancio-tests`
- `lenient()` mode should ignore unconsumed `.emit().items()` HOT 1
- How to generate a list of strings from a pre-defined selection HOT 1
- `InstancioExtension`: Wrong Seed printed when using a custom seed by method or `@WithSettings` annotation HOT 7
- `InstancioExtension`: Make the log level adjustable HOT 3
- GeneratorProvider ordering HOT 2
- Spatial Generator HOT 5
- NPE due to blank `javax.xml.namespace.QName` objects HOT 6
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 instancio.