and by complain he means a compile error...

-igor


On Wed, Sep 14, 2011 at 4:37 AM, Martin Grigorov <[email protected]> wrote:
> Ah, yes.
> A child class which overrides the method and is "protected" will
> complain that visibility is reduced ...
> Have to wait for Wicket.next.
>
> On Wed, Sep 14, 2011 at 2:30 PM, Peter Ertl <[email protected]> wrote:
>> @Martin:
>>
>> yeah, switching from protected to public should at most yield a warning in 
>> an overloaded class. Igor didn't like it. Maybe my English confused him and 
>> he thought about going from public to protected?!
>>
>> Would be great if we could change this in 1.5.
>>
>> What you think?
>>
>>
>>
>> Am 14.09.2011 um 13:17 schrieb Martin Grigorov:
>>
>>> On Wed, Sep 14, 2011 at 2:07 PM, Peter Ertl <[email protected]> wrote:
>>>>
>>>> Am 14.09.2011 um 09:32 schrieb nhsoft.yhw:
>>>>
>>>>> inputStream = 
>>>>> packageResource.getCacheableResourceStream().getInputStream();
>>>>
>>>> I think this needs some clarification...
>>>>
>>>> PackageResource has these methods for getting a stream:
>>>>
>>>>  (1)  protected IResourceStream getResourceStream()
>>>>
>>>> and
>>>>
>>>>  (2) public IResourceStream getCacheableResourceStream()
>>>>
>>>> the intention is:
>>>>
>>>> -  (1) locates the default resource without taking any client preferences 
>>>> into account.
>>>>
>>>> -  (2) is there to get a client-specific resoure stream that is supposed 
>>>> to be immutable for the lifetime of the application and should be cached.
>>>>
>>>> the sooner (1) locates the resource stream based on
>>>>
>>>> - anchor class
>>>> - name
>>>> - locale
>>>> - style
>>>> - variation
>>>>
>>>> as specified in the constructor(!) of PackageResource. So for example when 
>>>> using CssResourceReference (which is a descendant of 
>>>> PackageResourceReference) like that in your page:
>>>>
>>>>  private static final PackageResourceReference CSS = new 
>>>> CssResourceReference(MyPage.class, "mycss", Locale.ENGLISH, "style1", 
>>>> "variation1");
>>>>
>>>> these parameters will be applied to PackageResource when resolving the 
>>>> reference and yield:
>>>>
>>>> - anchor class = MyPage.class
>>>> - name = "mycss"
>>>> - locale = Locale.ENGLISH
>>>> - style = "style1"
>>>> - variation = "variation1"
>>>>
>>>> and getResourceStream (1) will locate the resource based on the above 
>>>> criteria.
>>>>
>>>> In contrary getCacheableResourceStream (2) will override the values for 
>>>> locale and style with the values of the current session.
>>>>
>>>> - anchor class = MyPage.class
>>>> - name = "mycss"
>>>> - Session.getLocale() if not empty, otherwise Locale.ENGLISH
>>>> - Session.getStyle() if not empty, otherwise "style1"
>>>> - variation = "variation1"
>>>>
>>>> So (1) returns the default stream and (2) returns the stream fitting the 
>>>> client's preferences.
>>>>
>>>> Unfortunately I realized it too late that (1) which was 'public' in 1.4 is 
>>>> now 'protected' in 1.5. It's too late to change this without breaking the 
>>>> API. This can change in 1.6 to 'public' again unless things change 
>>>> completely (don't think so :-)
>>> I think 'protected' -> 'public' is not a problem.
>>> The opposite ('public' -> 'protected') is not allowed in 1.5.x.
>>>>
>>>> So In case you need to access (1) but miss the 'public' I can suggest the 
>>>> following workaround / kludge.
>>>>
>>>> public class MyPackageResource extends PackageResource
>>>> {
>>>>        public MyPackageResource(Class<?> scope, String name, Locale 
>>>> locale, String style,
>>>>                String variation)
>>>>        {
>>>>                super(scope, name, locale, style, variation);
>>>>        }
>>>>
>>>>        // change access to public here
>>>>        public IResourceStream getResourceStream()
>>>>        {
>>>>                return super.getResourceStream();
>>>>        }
>>>> }
>>>>
>>>> If you only need to open a stream of a package located file use this 
>>>> instead - no need for PackageResource in that case at all:
>>>>
>>>>  InputStream is = MyPage.class.getResourceAsStream("mycss.css")
>>>>
>>>>
>>>> Cheers
>>>> Peter
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Martin Grigorov
>>> jWeekend
>>> Training, Consulting, Development
>>> http://jWeekend.com
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>>
>
>
>
> --
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to