Hi David B., Yes, that is one good example. Ideally would also be good to be able to get the type as well, and maybe annotations on the field/method (for DB mapping or indexing), but what you show below is already a great start.
Cheers, =David > On Aug 16, 2016, at 4:50 PM, David Bosschaert <[email protected]> > wrote: > > Hi David, > > Do you mean something like the following: > > MyTopDTO { > int someField; > MySubDTO anotherDTO; > } > > MySubDTO { > String someString; > } > > Then you'd like to be able to do: > MyTopDTO dto = ...; // from somewhere > Object stringVal = converter.toTree(dto).valueAt(dto, > "anotherDTO/someString"); > > am I right? > > Cheers, > > David > > > On 16 August 2016 at 07:00, David Leangen <[email protected]> wrote: > >> >> Hi! >> >> The Converter service does a lot of introspection and parsing of the DTO >> data structure. In many cases, a DTO is a very simple object structure. >> However, it can also be a very complex structure, too. >> >> According to my understanding of the objectives of the Converter, one >> important goal is to be able to persist data. The idea is that the DTO >> describes the data, the whole data, and nothing but the data, so help me >> Uncle. Thus, it is the ideal way to ship the state of the system off to >> PersistenceLand. >> >> I can buy into this vision. >> >> If we do buy into this vision, then we may be missing out on a few great >> opportunities here. When data gets persisted, we often need to understand >> the relationships between the embedded objects. Or, we may want to be able >> to create an index on the data. These are a few of the reasons why we would >> want to have some kind of x-ray vision on the data structure. Since we >> already go through all the trouble of parsing the data structure in order >> to convert it, and since this is ~95% of the work, it would be really nice >> to provide access to this information in order to easily link in services >> that require this intimate knowledge. Otherwise, all the parsing would have >> to be done over and over again for each service. >> >> I believe that it would only take a few methods to be able to leverage all >> the parsing work done by the Converter. I can think of: >> >> DataTree Converter.toTree(DTO dto); // DataTre gives a tree view of the >> structure >> Object tree.valueAt(DTO dto, String path); // Dot-separated path value >> within the tree structure >> void tree.set(DTO dto, String path, Object value); // Set the value at >> the given location in the tree structure >> void process(DTO dto, Consumer<?> function); // Visit each node for some >> kind of processing >> >> Those are just some examples. Perhaps a new API would be necessary, but my >> main point here is that since we are going through all this work of >> implementing a parser, this is the IDEAL time to create this type of view >> on the data. >> >> >> wdyt? >> >> I can explain further the idea if you like. For now, I just wanted to get >> a quick feedback to see if there is any openness to this kind of thing. >> >> >> =David >> >> >>
