You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-dev@db.apache.org by Craig L Russell <Cr...@Sun.COM> on 2006/01/08 22:59:10 UTC

Issue 153: JDOQL super keyword

Javadogs,

I've recorded this as Issue 153. I propose to defer this to a future  
release.

Currently super is not a JDOQL keyword, so there is no way to exactly  
duplicate the semantics of Java super. In Java, super is used to  
access a field (or method, but methods are not relevant for JDOQL)  
that is hidden by a subclass field of the same name.

The main use of this in JDOQL would be to access a hidden field where  
the declaring class is not known. If the declaring class is known,  
then the field can be accessed by casting “this” to the declaring  
class in a field navigation expression, e.g. ((MySuperclass) 
this).hiddenField

Craig

On Jan 8, 2006, at 1:15 PM, Michael Bouschen wrote:

> Hi Erik,
>
> do you think we need to support super in JDOQL? You only need it if  
> the cancdidate class hides a supeclass field and if S is the  
> superclass you can write 'super.field' as '((S)this).field'.
>
> Regards Michael
>
>> Craig,
>>
>> In JDOQL BNF, it's not a valid field accessor. The same for  
>> ClassName.super
>>
>> Current
>> -------
>> FieldAccess:
>> FieldName
>> Primary . FieldName
>>
>> Regards,
>>
>> Erik Bengtson
>>
>> Quoting Craig L Russell <Cr...@Sun.COM>:
>>
>>
>>> Hi Erik,
>>>
>>> It is not in the spec because it's already a Java keyword. Please  
>>> see
>>> 14.4:
>>>
>>> Keywords
>>> Keywords must not be used as package names, class names, parameter
>>> names, or variable names in queries. Keywords are permitted as field
>>> names only if they are on the right side of the “.” in field access
>>> expressions as defined in the Java Language Specification second
>>> edition, section 15.11. Keywords include the Java language keywords
>>> and the JDOQL keywords. Java keywords are as defined in the Java
>>> language specification section 3.9, plus the boolean literals true
>>> and false, and the null literal. JDOQL keywords maybe written in all
>>> lower case or all upper case.
>>>
>>> What specifically are you interested in knowing?
>>>
>>> Regards,
>>>
>>> Craig
>>>
>>> On Jan 7, 2006, at 3:57 PM, erik@jpox.org wrote:
>>>
>>>
>>>> Hi,
>>>>
>>>> Is it intentionally not in the spec?
>>>>
>>>> Regards,
>>>>
>>>> Erik Bengtson
>>>>
>>> Craig Russell
>>> Architect, Sun Java Enterprise System http://java.sun.com/ 
>>> products/jdo
>>> 408 276-5638 mailto:Craig.Russell@sun.com
>>> P.S. A good JDO? O, Gasp!
>>>
>>>
>>>
>>
>>
>>
>
>
> -- 
> Michael Bouschen		Tech@Spree Engineering GmbH
> mailto:mbo.tech@spree.de	http://www.tech.spree.de/
> Tel.:++49/30/235 520-33		Buelowstr. 66			
> Fax.:++49/30/2175 2012		D-10783 Berlin			
>

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!