HiddenBuilder
From APIDesign
(Difference between revisions)
(New page: HiddenBuilder is a trick that hides the builder from Javadoc of your API. It may be very handy when the builder comes with a complex (generic type) signature like in case o...) |
|||
(One intermediate revision not shown.) | |||
Line 1: | Line 1: | ||
[[HiddenBuilder]] is a trick that hides the [[builder]] from [[Javadoc]] of your [[API]]. It may be very handy when the builder comes with a complex (generic type) signature like in case of [[ResistingBuilder]]. | [[HiddenBuilder]] is a trick that hides the [[builder]] from [[Javadoc]] of your [[API]]. It may be very handy when the builder comes with a complex (generic type) signature like in case of [[ResistingBuilder]]. | ||
- | An example of [[HiddenBuilder]] can be found at [[Truffle]] [[API]]. There is {{truffle|com/oracle/truffle/api/vm|PolyglotEngine.Builder}} which constructs instances of {{truffle|com/oracle/truffle/api/vm|PolyglotEngine}}, but if you look at overall [[Truffle]] [[javadoc]], the [[builder]] isn't visible in the {{truffle|com/oracle/truffle/api/vm|package- | + | An example of [[HiddenBuilder]] can be found at [[Truffle]] [[API]]. There is {{truffle|com/oracle/truffle/api/vm|PolyglotEngine.Builder}} which constructs instances of {{truffle|com/oracle/truffle/api/vm|PolyglotEngine}}, but if you look at overall [[Truffle]] [[javadoc]], the [[builder]] isn't visible in the {{truffle|com/oracle/truffle/api/vm|package-summary}} overview. |
- | [[ | + | The trick is to make the builder a non-static inner class (see [https://github.com/graalvm/truffle/blob/2dacd8599f40e31cb1ff2232264d664564880959/truffle/com.oracle.truffle.api.vm/src/com/oracle/truffle/api/vm/PolyglotEngine.java#L257 the code]) - then it isn't listed in the [[Javadoc]] classes overview. |
+ | |||
+ | [[Category:APIDesignPatterns]] | ||
+ | [[Category:APIDesignPatterns:Creational]] |
Current revision
HiddenBuilder is a trick that hides the builder from Javadoc of your API. It may be very handy when the builder comes with a complex (generic type) signature like in case of ResistingBuilder.
An example of HiddenBuilder can be found at Truffle API. There is PolyglotEngine.Builder which constructs instances of PolyglotEngine, but if you look at overall Truffle javadoc, the builder isn't visible in the package-summary overview.
The trick is to make the builder a non-static inner class (see the code) - then it isn't listed in the Javadoc classes overview.