+ @NonNull GeneratedType addAliasType(final ModuleContext sourceContext, final ContainerSchemaNode source,
+ final ContainerSchemaNode alias) {
+ final GeneratedTypeBuilder builder = sourceContext.getChildNode(source.getPath());
+ checkState(builder != null, "Could not find builder for %s", source);
+
+ final JavaTypeName id = builder.getIdentifier();
+ final SchemaPath path = alias.getPath();
+ final JavaTypeName prev = aliases.putIfAbsent(path, id);
+ checkState(prev == null, "Type aliasing conflict on %s: %s vs %s", path, prev, id);
+
+ return builder.build();
+ }
+
+ @Nullable JavaTypeName getAlias(final SchemaPath path) {
+ return aliases.get(path);
+ }
+