Glad it worked!

Mark

-- 
Dr. Mark Wardle
Consultant Neurologist, Cardiff, UK
(Sent from my mobile)


> On 16 Apr 2017, at 12:13, Musall, Maik <m...@selbstdenker.ag> wrote:
> 
> Wow, Mark, good guess!
> 
> That's it. Added a get… method around each part of the path's accessed 
> methods, and it works. Didn't occur to me at all, because those methods are 
> not getters in the strict sense. But I could have discovered this before, by 
> looking at the BeanAcccessor implementation. Dang.
> 
> I suppose there is no way in Cayenne to inject a different behaviour for 
> this, through DI or something? It doesn't look like it from the code 
> (BeanAccessor, PropertyUtils, and the readSimpleProperty() method  in 
> CayennDataObject is even marked final). Because I know I will run into this 
> again and again, given the existing large code base.
> 
> Maik
> 
> 
> 
>> Am 15.04.2017 um 23:18 schrieb Mark Wardle <m...@wardle.org>:
>> 
>> Can't try it as only have phone at the moment but have you tried adding 
>> "get" as a prefix to your method declaration?
>> 
>> I still find it difficult to not name getters without the get. 
>> 
>> -- 
>> Dr. Mark Wardle
>> Consultant Neurologist, Cardiff, UK
>> (Sent from my mobile)
>> 
>> 
>>> On 13 Apr 2017, at 10:44, Musall, Maik <m...@selbstdenker.ag> wrote:
>>> 
>>> Hi John,
>>> 
>>> can you elaborate that on this example?
>>> 
>>> Previously, I did this to filter:
>>> 
>>>  result = ExpressionFactory.matchExp( filterPath, filterValue 
>>> ).filterObjects( result );
>>> 
>>> Now I tried:
>>> 
>>>  result = result.stream()
>>>      .filter( obj -> PropertyUtils.getProperty( obj, filterPath ).equals( 
>>> filterValue ) )
>>>      .collect( Collectors.toList() );
>>> 
>>> Both times, I get:
>>> 
>>> java.lang.IllegalArgumentException: Property 'responsibleUser' is not 
>>> readable
>>> 
>>> where "result" is like a List<Foo> with Foo being a DataObject that has a 
>>> method called "responsibleUser", returning another DataObject subclass.
>>> 
>>> Maik
>>> 
>>> 
>>>> Am 12.04.2017 um 19:11 schrieb John Huss <johnth...@gmail.com>:
>>>> 
>>>> Ok, you can use property utils in conjunction to call a method using
>>>> reflection (with a string name)
>>>>> On Wed, Apr 12, 2017 at 6:07 PM Musall, Maik <m...@selbstdenker.ag> wrote:
>>>>> 
>>>>> Hi John,
>>>>> 
>>>>> how do you mean that? Those filter paths come from the UI, passed on by
>>>>> the user assembling filter criteria. I wouldn't use string filter paths if
>>>>> the criteria would be constant.
>>>>> 
>>>>> Maik
>>>>> 
>>>>>> Am 12.04.2017 um 19:03 schrieb John Huss <johnth...@gmail.com>:
>>>>>> 
>>>>>> Just use a java 8 stream and lambda in addition or instead of.
>>>>>> On Wed, Apr 12, 2017 at 4:48 PM Musall, Maik <m...@selbstdenker.ag>
>>>>> wrote:
>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> when filtering a list of objects by expression.filterObjects( list ), is
>>>>>>> there a way for the expression to access regular methods instead of
>>>>> Cayenne
>>>>>>> db properties?
>>>>>>> 
>>>>>>> Use Case: I have a class A that has several relationships to class B,
>>>>> and
>>>>>>> it depends on a number of factors which is relevant in this case. So
>>>>> there
>>>>>>> is a method that returns either this or that relation to class B. I
>>>>> would
>>>>>>> like to include the method name in the expression path. (This was
>>>>> possible
>>>>>>> in EOF, and I just found that it doesn't work in Cayenne.)
>>>>>>> 
>>>>>>> Thanks
>>>>>>> Maik
>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>> 
> 

Reply via email to