Hi,

Suggestion:
This came up with one of the discussion with Pramod, will it be a good
idea, for database input operators to generate pojo based on the selected
column field names and types? No need to accept json input from user.

Question:
How can we share this POJO among multiple operators when application is
already launched and class is generated on the fly?

-Priyanka

On Thu, Jan 21, 2016 at 11:16 PM, Chinmay Kolhatkar <[email protected]
> wrote:

> Hi All,
>
> We're planning to add a utility in malhar-library for generating a POJO
> class on the fly from given JSON schema.
>
> Use case is where the application is provided with schema and that needs to
> be used in one or more operators either as a tuple over the stream OR for
> processing.
>
> General Design:
> 1. Utility will be provided with fqcn of the class and schema definition
> provided as json.
> 2. The schema definition will look like following:
>     {
>        "fqcn":"<qualified class name>",
>        "fields": [
>          {
>            "name":"field1",
>            "type":"long"
>          },
>          {
>            "name":"field2",
>            "type": "string"
>          }
>        ]
>     }
> 3. Supported types identified in "type" JSON field are:
>       boolean, char, byte, short, int, float, long, double
> 4. The output of this utility will be a generated .class file in the form
> of FSDataOutputStream.
> 5. Xbean asm5 library will be used for this.
> 6. Following methods will be added to the generated class:
>     a. Getter/Setter methods for given fields.
>     b. simple toString - Generate string equivalent for all the fields
>     c. hashCode method - calculate the overall hashCode using individual
> field hashcodes, similar to how String.hashCode generates hashCode of
> string using chars in it.
>     d. equals method - Similar to how String.equals method has done it
> using individual char.
>
>
> Questions I have about the functionality:
> 1. Should the utility also support nested pojo definition via schema json?
>     In such case the field definition can look like following:
>     { "name":"nestedField", "type":"<fqcn of nested class>",
> "fields":[....] }
>     The nested class will be provided
>
> 2. Should the utility also support giving out the JarOutputStream which
> will have a generated jar?
>
> Please let me know your thoughts.
>
> Thanks,
> Chinmay.
>

Reply via email to