public enum Status { one (1), two (2); private final int days; Status(int days) { this.days = days; } public DateTime computeValue() { return new DateTime().plusDays(days); } }
On 07/06/2013, at 8:34 PM, Musall Maik wrote: > > Got that already by private mail. All right, let's modify the example. > Returning a fixed string was oversimplifying. > > > public enum Status { > one { @Override public DateTime computeValue() { new > DateTime().plusDays( 1 ); }, > two { @Override public DateTime computeValue() { new > DateTime().plusDays( 2 ); }; > public abstract DateTime computeValue(); > } > > > Maik > > > Am 07.06.2013 um 12:27 schrieb D Tim Cummings <t...@triptera.com.au>: > >> Another workaround which is less ugly. >> >> public enum Status { >> one ("eins"), >> two ("zwei"); >> private final String description; >> Status(String description) { >> this.description = description; >> } >> public String description() { >> return description; >> } >> } >> >> Tim >> >> >> On 07/06/2013, at 5:58 PM, Musall Maik wrote: >> >>> Hi, >>> >>> some time ago, I discovered the following problem with Enums and WO >>> bindings (broken down to a simple example): >>> >>> package com.foo.bar; >>> public class MyClass { >>> public static enum Status { >>> one { @Override public String description() { return "eins"; >>> } }, >>> two { @Override public String description() { return "zwei"; >>> } }; >>> public abstract String description(); >>> } >>> } >>> >>> While this works nicely in all Java code, WO bindings will not see the >>> overridden description() implementations. At least not when using Java >>> packages (it seems to work if everything is in the default package, but >>> that doesn't help me). You get an error like: >>> >>> java.lang.IllegalAccessException: Class >>> com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1 can not access >>> a member of class com.foo.bar.MyClass$Status$1 with modifiers "public" >>> >>> or, if using JRebel, you get >>> >>> java.lang.IllegalAccessException: Class<?> >>> com.webobjects.foundation.NSKeyValueCoding$ValueAccessor$1 can not access >>> com.foo.bar.MyClass$Status$1! >>> >>> My current workaround: >>> >>> package com.foo.bar; >>> public class MyClass { >>> public static enum Status { >>> one { @Override String descriptionImpl() { return "eins"; } }, >>> two { @Override String descriptionImpl() { return "zwei"; } }; >>> abstract String descriptionImpl(); >>> public String description() { return descriptionImpl(); } >>> } >>> } >>> >>> which works but is ugly. Now I'm about to implement another Enum with a lot >>> of methods and it bothers me. Anyone an idea how to improve the situation? >>> >>> Thanks >>> Maik >>> _______________________________________________ >>> Do not post admin requests to the list. They will be ignored. >>> Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) >>> Help/Unsubscribe/Update your Subscription: >>> https://lists.apple.com/mailman/options/webobjects-dev/tim%40triptera.com.au >>> >>> This email sent to t...@triptera.com.au >> >
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com