Uh, I should have made the implementation more different in the two. In 
general, the enums I have are more lengthy, and they do all sorts of different 
stuff to compute something in their methods. They can't share a common 
implementation, or at least there could be a common one, but the point would be 
that a few enum instances would need to override the implementation, not just 
differ in fixed values.


Am 07.06.2013 um 12:45 schrieb D Tim Cummings <t...@triptera.com.au>:

> 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/maik%40selbstdenker.ag
> 
> This email sent to m...@selbstdenker.ag

 _______________________________________________
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

Reply via email to