You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Emmanuel Lecharny <el...@gmail.com> on 2011/02/03 08:26:13 UTC

Codec hierarchy feedback

Hi guys,

after the mails we exchanged yesterday, here is some proposal for the 
Codec hierarchy we came with :

http://d.pr/iGKG

In case the image link is broken, here is a text version
(XXX) : interface
[XXX] : Class
{XXX} : Abstract class

General case for a specific control :

   (Control) o------- {AbstractControl}
       ^                     ^
       |                     |
(EntryChange) o----- [EntryChangeImpl]

Special case for Control we don't declare in the API :

   (Control) o------- {AbstractControl}
       o                     ^
       |                     |
       +------------ [OpaqueControlImpl]

Base line :
- all the implementations ends with an *Impl* postfix
- all specific controls have an interface with no *I* prefix
- the AbstractControl contains shared fields (OID and criticality)
- the getValue(), setValue() and hasValue() are hidden for all specific 
controls, except for the OpaqueControlImpl class

About the Decorators, we also came with a simpler hierarchy :
http://d.pr/Td9V

It's not final yet.

Thanks !

-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com


Re: Codec hierarchy feedback

Posted by Alex Karasulu <ak...@apache.org>.
On Thu, Feb 3, 2011 at 9:26 AM, Emmanuel Lecharny <el...@gmail.com> wrote:
> Hi guys,
>
> after the mails we exchanged yesterday, here is some proposal for the Codec
> hierarchy we came with :
>
> http://d.pr/iGKG
>
> In case the image link is broken, here is a text version
> (XXX) : interface
> [XXX] : Class
> {XXX} : Abstract class
>
> General case for a specific control :
>
>  (Control) o------- {AbstractControl}
>      ^                     ^
>      |                     |
> (EntryChange) o----- [EntryChangeImpl]
>
> Special case for Control we don't declare in the API :
>
>  (Control) o------- {AbstractControl}
>      o                     ^
>      |                     |
>      +------------ [OpaqueControlImpl]
>
> Base line :
> - all the implementations ends with an *Impl* postfix
> - all specific controls have an interface with no *I* prefix
> - the AbstractControl contains shared fields (OID and criticality)
> - the getValue(), setValue() and hasValue() are hidden for all specific
> controls, except for the OpaqueControlImpl class
>
> About the Decorators, we also came with a simpler hierarchy :
> http://d.pr/Td9V
>
> It's not final yet.

Looks great. Love the pretty diagrams which we can put in our doco.

Let me know how far you got last night with this.

Thanks,
Alex