Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java generator, support non-string expandable enum for TypeSpec #4492

Open
wants to merge 24 commits into
base: main
Choose a base branch
from

Conversation

XiaofeiCao
Copy link
Member

@XiaofeiCao XiaofeiCao commented Sep 23, 2024

Previous non-string expandable enum implementation

  • Branded
    • Swagger(ExpandableStringEnum, serialization having trouble)
    • TypeSpec(ExpandableStringEnum, serialization having trouble)
  • Unbranded
    • ExpandableEnum interface

After this PR

  • Branded
    • Swagger(ExpandableEnum interface implementation, with serialization/deserialization supported)
    • TypeSpec(ExpandableEnum interface implementation, with serialization/deserialization supported)
  • Unbranded(untouched, supported)

Limitations

About this PR's commits

@microsoft-github-policy-service microsoft-github-policy-service bot added the emitter:client:java Issue for the Java client emitter: @typespec/http-client-java label Sep 23, 2024
@XiaofeiCao XiaofeiCao changed the title tsp, support non-string expandable enum java generator, support non-string expandable enum for TypeSpec Sep 23, 2024
@azure-sdk
Copy link
Collaborator

No changes needing a change description found.

@azure-sdk
Copy link
Collaborator

You can try these changes here

🛝 Playground 🌐 Website 📚 Next docs

@weidongxu-microsoft
Copy link
Contributor

I am not sure about Swagger non-string expansive enum. I am kind of inclined for them to use ExpandableEnum as well. But I don't know what they really are in service backend.

@XiaofeiCao
Copy link
Member Author

I am not sure about Swagger non-string expansive enum. I am kind of inclined for them to use ExpandableEnum as well. But I don't know what they really are in service backend.

Yes, it depends on backend.
Current monitor and cdn already have such enum. For Swagger, if we decide to serialize them to elementType, guess we could do defaultValueExpression for the string value of the ExpandableStringEnum to convert string back to the elementType.

Let me do a summary and bring this up on thursday's meeting.

@XiaofeiCao XiaofeiCao marked this pull request as ready for review September 29, 2024 08:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
emitter:client:java Issue for the Java client emitter: @typespec/http-client-java
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants