On 29 April 2010 11:32, Richard Quadling <rquadl...@googlemail.com> wrote:
> On 29 April 2010 11:12, Richard Quadling <rquadl...@googlemail.com> wrote:
>> On 29 April 2010 10:26, Hannes Magnusson <hannes.magnus...@gmail.com> wrote:
>>> On Thu, Apr 29, 2010 at 10:56, Richard Quadling
>>> <rquadl...@googlemail.com> wrote:
>>>> On 29 April 2010 09:49, Hannes Magnusson <hannes.magnus...@gmail.com> 
>>>> wrote:
>>>>> On Thu, Apr 29, 2010 at 10:27, Richard Quadling
>>>>> <rquadl...@googlemail.com> wrote:
>>>>>> On 29 April 2010 08:50, Peter Cowburn <petercowb...@gmail.com> wrote:
>>>>>>> On 29 April 2010 08:18, Philip Olson <phi...@roshambo.org> wrote:
>>>>>>>>
>>>>>>>> Moments ago Yawk asked in IRC about why we list inherited methods but 
>>>>>>>> not inherited properties. Good question. So unless someone comes up 
>>>>>>>> with a reason, let's add them too. Okay? It can use the same form of 
>>>>>>>> xpointer inside the classname.xml files.
>>>>>>>
>>>>>>> Good call, thanks yawk! I've had a number of folks in the past ask my
>>>>>>> about why a certain class constant is available but not in the docs so
>>>>>>> it would be good to have them listed in the class synopsis.
>>>>>>>
>>>>>>> While we're on the topic, if anyone is looking to go through some
>>>>>>> classes to add in these inherited constants then it would be worth
>>>>>>> checking for inherited methods as well since not all classes have them
>>>>>>> listed.
>>>>>>
>>>>>> As a test, I used the SPL's RunTimeException.
>>>>>>
>>>>>> <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook)
>>>>>> xpointer(id('class.exception')/descendant::db:fieldsynopsis)" />
>>>>>>
>>>>>> works, but it includes the private properties.
>>>>>>
>>>>>> How can I extend that to exclude <modifier>private</modifier>
>>>>>>
>>>>>> I've tried ...
>>>>>>
>>>>>> <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook)
>>>>>> xpointer(id('class.exception')/descendant::db:fieldsynopsis[modifier!='private'])"
>>>>>> />
>>>>>>
>>>>>> I also see that the private methods are inherited. Clearly not right
>>>>>> as you cannot call the base class's private method in a sub-class.
>>>>>
>>>>> I didn't even realize that built-in classes had private
>>>>> properties/methods. Seems utterly useless to tell the end-user that.
>>>>>
>>>>> The problem here however is when a fieldsynopsis has a xml:id.
>>>>> Thats gonna duplicate the ID and break the build..
>>>>>
>>>>> I do however not have an alternative suggestion as doing this in PhD
>>>>> would become crazy complicated really fast.
>>>>>
>>>>
>>>> Surely that is no different to a methodsynopsis having an id?
>>>
>>> They usually don't.
>>>
>>> With fieldsynopsis however I think we often have xml:id so we can link
>>> to a specific property when they are shown on the classreference page.
>>>
>>> -Hannes
>>>
>>
>> As <fieldsynopsis> is used for properties and constants, we should
>> only include "protected" and "public" modifiers for properties and
>> methods.
>>
>> Still working on how to do this in the query.
>
> Looks like I've got it ...
>
>    <classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
>    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook)
> xpointer(id('class.exception')/descendant::db:fieldsynopsis[(db:modifier/text()='protected')
> or (db:modifier/text()='public')])" />
>
>    <classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
>    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook)
> xpointer(id('class.exception')/db:refentry/db:refsec...@role='description']/descendant::db:methodsynopsis[(db:modifier/text()='protected')
> or (db:modifier/text()='public')])" />

Slight refinement.

    <classsynopsisinfo role="comment">&InheritedProperties;</classsynopsisinfo>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook)
xpointer(id('class.exception')/descendant::db:fieldsynopsis[(db:modifier='protected')
or (db:modifier='public')])" />

    <classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook)
xpointer(id('class.exception')/db:refentry/db:refsec...@role='description']/descendant::db:methodsynopsis[(db:modifier='protected')
or (db:modifier='public')])" />


-- 
-----
Richard Quadling
"Standing on the shoulders of some very clever giants!"
EE : http://www.experts-exchange.com/M_248814.html
EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
ZOPA : http://uk.zopa.com/member/RQuadling

Reply via email to