@Target(value=FIELD) @Retention(value=RUNTIME) public @interface Frozen
frozen,
or contains frozen subtypes.
This annotation is purely informational at this stage, the validity of the declaration is not checked.
But will become useful when a schema generation feature is added to the mapper. Therefore it is a good idea to keep
frozen declarations up-to-date.FrozenKey,
FrozenValuepublic abstract String value
// Will map to frozen<user>
@Frozen
private User user;
@Frozen("map<text, map<text, frozen<user>>>")
private Map<String, Map<String, User>> m;
Also consider the @FrozenKey and @FrozenValue shortcuts for simple collections.