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 er...@jpox.org on 2006/01/08 00:57:22 UTC
JDOQL super keyword
Hi,
Is it intentionally not in the spec?
Regards,
Erik Bengtson
Issue 153: JDOQL super keyword
Posted by Craig L Russell <Cr...@Sun.COM>.
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!
Re: JDOQL super keyword
Posted by Michael Bouschen <mb...@spree.de>.
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
Re: JDOQL super keyword
Posted by er...@jpox.org.
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!
>
>
Re: JDOQL super keyword
Posted by 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!