Comments (1)
IMO that's not for the API or SPI.
There are several different implementations of Prefix
, e.g. IndianPrefix
or TamilPrefix
in systems-common
Reflection should be used to find a list of all classes that implement a particular interface like Prefix
.
There are several sources like:
- https://www.baeldung.com/java-reflection - how to do this directly with the JDK
- https://github.com/ronmamo/reflections - Reflections.org, we use some of these classes in the TCK as well
- https://github.com/burningwave/core/wiki/How-retrieve-all-classes-that-implement-one-or-more-interfaces - Burningwave Core
Spring was also mentioned, but I'm not sure because the only methods I saw in something like ClassUtils do the exact opposite, a list of all interfaces a given class implements, but not the other way round.
The strong and versatile path scanner of BurningWave looks very compelling. Although it is a little older and not so often changed, Reflections.org should be as fine. Because the two most common prefixes are part of the API there is no need to discover them via reflection. And while it is not strictly mandated, just highly recommended most Prefix implementations are also enums and the exact class known.
If you need such a flexible and powerful scanner of all implementing classes, please use one of the mentioned approaches, I don't see a use to put that into the API and force all implementations to do it if a majority does not need any other prefixes and a few that also define two or more extra enums know the exact class of these enums.
from unit-api.
Related Issues (20)
- Update Spec
- Remove getUnitFormatService() from ServiceProvider
- Remove UnitFormatService
- Improve code coverage of ServiceProvider HOT 3
- Fix problem with maven-javadoc-plugin
- MR 1 Spec Review
- Could Quantity use a symbol, too? HOT 1
- Upgrade JDK to Java 11 or higher
- Replace Bintray/JCenter in API build settings
- Improve the JavaDoc of UnitFormat
- Remove unnecessary OSGI imports
- Convert Quantity to most fitting Prefix HOT 7
- improve interoperability of Quantity with Hibernate JPA HOT 7
- Should not cache the ServiceProvider implementation HOT 8
- Incorporate the new SI Prefixes
- Upgrade CI JDK to Java 17 or higher
- Update module-info
- Replace tabulations by 4 spaces HOT 2
- Should we deprecate MetricPrefix.DEKA()? HOT 4
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 unit-api.