Skip to content

Commit

Permalink
Refactor to handleDepErrorSerializer method
Browse files Browse the repository at this point in the history
  • Loading branch information
rishav-karanjit committed Oct 25, 2024
1 parent 60db6e3 commit 83b721b
Showing 1 changed file with 18 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@

import static software.amazon.polymorph.smithygo.codegen.SymbolUtils.POINTABLE;
import static software.amazon.polymorph.smithygo.utils.Constants.DAFNY_RUNTIME_GO_LIBRARY_MODULE;

import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Set;
import software.amazon.polymorph.smithygo.codegen.ApplicationProtocol;
import software.amazon.polymorph.smithygo.codegen.GenerationContext;
import software.amazon.polymorph.smithygo.codegen.GoDelegator;
import software.amazon.polymorph.smithygo.codegen.GoWriter;
import software.amazon.polymorph.smithygo.codegen.SmithyGoDependency;
import software.amazon.polymorph.smithygo.codegen.integration.ProtocolGenerator;
import software.amazon.polymorph.smithygo.localservice.nameresolver.DafnyNameResolver;
Expand Down Expand Up @@ -987,20 +988,33 @@ func Error_ToDafny(err error)($L.Error) {
.getDependencies()
: new LinkedList<ShapeId>();
if (dependencies != null) {
var sdkErrHandler = new StringBuilder();
handleDepErrorSerializer(context, w, dependencies);
}
}),
SmithyNameResolver.smithyTypesNamespace(serviceShape),
SmithyNameResolver.smithyTypesNamespace(serviceShape),
SmithyNameResolver.smithyTypesNamespace(serviceShape)
);
}
);
}

private void handleDepErrorSerializer(final GenerationContext context, final GoWriter w, final Collection<ShapeId> dependencies) {
final var sdkErrHandler = new StringBuilder();
final var serviceShape = context.settings().getService(context.model());
Shape sdkDepShape = null;
for (final var dep : dependencies) {
final var depShape = context.model().expectShape(dep);
if (depShape.hasTrait(ServiceTrait.class)) {
if (sdkDepShape == null) {
writer.addImport(SmithyGoDependency.SMITHY_SOURCE_PATH);
w.addImport(SmithyGoDependency.SMITHY_SOURCE_PATH);
sdkErrHandler.append(
"""
case smithy.APIError:
"""
);
}
writer.addImportFromModule(
w.addImportFromModule(
SmithyNameResolver.getGoModuleNameForSmithyNamespace(
depShape.getId().getNamespace()
),
Expand Down Expand Up @@ -1057,14 +1071,6 @@ func Error_ToDafny(err error)($L.Error) {
);
w.write(sdkErrHandler.toString());
}
}
}),
SmithyNameResolver.smithyTypesNamespace(serviceShape),
SmithyNameResolver.smithyTypesNamespace(serviceShape),
SmithyNameResolver.smithyTypesNamespace(serviceShape)
);
}
);
}

private void generateConfigDeserializer(final GenerationContext context) {
Expand Down

0 comments on commit 83b721b

Please sign in to comment.