Dave Jensen
03/09/2020, 7:01 AMHeaders
, in a dozen or more packages but they do not implement an interface and all extend Object. I’ve struggling to come up with a solution that keeps the code DRY.Dave Jensen
03/09/2020, 7:03 AMpackage1.Headers
package2.Headers
...
package20.Headers
And they all have the exact same properties.Dragan Stanojević - Nevidljivi
03/09/2020, 7:04 AMimport package1.Headers as <whatever name you like>
Dave Jensen
03/09/2020, 7:13 AMAmirul Zin
03/09/2020, 7:15 AMDave Jensen
03/09/2020, 7:16 AMDave Jensen
03/09/2020, 7:24 AMDave Jensen
03/09/2020, 7:32 AMDragan Stanojević - Nevidljivi
03/09/2020, 7:34 AMianrumac
03/09/2020, 11:01 AMDave Jensen
03/09/2020, 4:18 PMpackage2.Client.send(package2.Headers, body, etc)
bbaldino
03/09/2020, 4:25 PMMyCommonType.from(Package1.HeadersInstance)
and <http://MyCommonType.to|MyCommonType.to><Package2.Headers>()
and write some code with reflection to create the right one?Dave Jensen
03/09/2020, 4:27 PMDave Jensen
03/09/2020, 4:28 PMfun convertToHeaders2(headers: MyHeaders): package2.Headers
bbaldino
03/09/2020, 4:29 PMconvert
function and pass the lib type you wanted via a generic and create it/fill it out using reflectionDave Jensen
03/09/2020, 4:38 PMbbaldino
03/09/2020, 4:39 PMkotlinpoet
or something? Could also be a good way to do the original generation of all the methods without using reflection.Daniel
03/09/2020, 6:33 PMDave Jensen
03/09/2020, 6:34 PMbbaldino
03/09/2020, 6:35 PMbbaldino
03/09/2020, 6:35 PMDave Jensen
03/09/2020, 6:36 PMDaniel
03/09/2020, 6:37 PMbbaldino
03/09/2020, 6:38 PMDave Jensen
03/09/2020, 6:38 PMpackage1.Api1.send(headers: package1.Headers)
package2.Api2.send(headers: package2.Headers)
package3.Api3.send(headers: package3.Headers)
package4.Api4.send(headers: package4.Headers)
package12.Api12.send(headers: package12.Headers)
Dave Jensen
03/09/2020, 6:39 PMI see no problem doing this a fixed amount of times.It’s human error prone and IMO doesn’t buy much. Just pushing the problem into the wrapper. At least your code errors are all in one place.
Daniel
03/09/2020, 6:40 PMDave Jensen
03/09/2020, 6:40 PMDave Jensen
03/09/2020, 6:41 PMDave Jensen
03/09/2020, 6:41 PMDaniel
03/09/2020, 6:44 PMMakeApi1Request
class which does something and then you have a MakeApi2Request
class which does something different. That the mappers inside the classes which map from your business code to theirs are the same at the moment is not a big concern. This might change any moment. For example tomorrow they change api2.header and only this one. Then you only have to update one mapperDaniel
03/09/2020, 6:45 PM