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

Reply via email to