-
Notifications
You must be signed in to change notification settings - Fork 146
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
Many to one #175
Many to one #175
Changes from 14 commits
62b9a67
fe050ae
6bd23b5
8b46940
e48eb12
d76f40d
9441907
67984ff
21dd9b1
cf7cad8
79d8ad6
7871c68
308716d
5e27c6b
2c604d3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -227,6 +227,22 @@ object UncapitalisedEnum extends Enum[UncapitalisedEnum] { | |
|
||
} | ||
|
||
sealed class MultiEnum(override val entryName: String, | ||
val alternateNames: String*) extends EnumEntry | ||
|
||
|
||
case object MultiEnum extends Enum[MultiEnum] { | ||
val values = findValues | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You can't do this because the type parameter passed to Compilation error https://travis-ci.org/lloydmeta/enumeratum/jobs/343456716#L844 [error] /home/travis/build/lloydmeta/enumeratum/enumeratum-core/src/test/scala/enumeratum/Models.scala:232:16: You can only use findValues on sealed traits or classes
[error] val values = findValues
[error] ^ There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fixed. |
||
|
||
override lazy val namesToValuesMap: Map[String, MultiEnum] = | ||
values.flatMap { n => | ||
(n.entryName -> n) +: n.alternateNames.map(_ -> n) | ||
}.toMap | ||
|
||
case object One extends MultiEnum("one", "1", "eins") | ||
case object Two extends MultiEnum("two", "2", "zwei") | ||
} | ||
|
||
object Wrapper { | ||
|
||
sealed trait SmartEnum extends EnumEntry | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice.
I think we should probably modify these
Map
s to be in terms ofnamesToValuesMap
as well (I'd like to keep them final for now)enumeratum/enumeratum-core/src/main/scala/enumeratum/Enum.scala
Lines 47 to 54 in c895c32
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you clarify what you mean here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right now, they're built in terms of
values
directly, whereas I think they should be built in terms ofnamesToValuesMap
so that they can have the same values (in case the user overridesnamesToValuesMap
and wants to use functions that calllowerCaseNamesToValuesMap
)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think I got it.