Hi guys,
Avro spec allows us to have an array of unions. Would you please tell me how to
construct such schemas using reflection?
1. For classes
It's easy
```java
public class Human extends Kind {
String name = "Andy";
ArrayList<Human> friends = new ArrayList<>();
}
public class Machine extends Kind {
String name = "BB-8";
}
@Union({ Human.class, Machine.class })
public class Kind extends Object {
}
public class Meta {
@Nullable
List<Kind> kinds;
}
public void testDefaults() {
Schema schema = ReflectData
.get()
.getSchema(Meta.class);
System.out.println(schema.toString(true));
}
```
2. For enums
I'm stuck because enums can be derived.
I think we should have an annotation named as @Items. For example:
```java
enum First{}
enum Second{}
public class Meta {
@Items(Human.class, Machine.class)
List<Object> kinds;
@Items(First.class, Second.class)
List<Object> ranks;
}
``
Please let me know what you think about this suggestion.
Thank you in advance.