It is the default scope that limits access to a package. "protected" limits 
access to subclasses no matter their location. So that should work, and still 
indicate that the class is not for instantiation.

Andrus

On Sep 9, 2014, at 5:37 PM, Michael Gentry <mgen...@masslight.net> wrote:

> If the method is changed to protected, any subclass would have to reside in
> the same package space, which seems undesirable to me.
> 
> Here is how Apache Commons does it:
> 
> public class FileUtils {
> 
> 
>    /**
> 
>     * Instances should NOT be constructed in standard programming.
> 
>     */
> 
>    public FileUtils() {
> 
>        super();
> 
>    }
> ...
> 
> public class StringUtils {
> ...
> 
>    public StringUtils() {
> 
>        super();
> 
>    }
> ...
> 
> mrg
> 
> 
> On Tue, Sep 9, 2014 at 2:10 AM, Andrus Adamchik <and...@objectstyle.org>
> wrote:
> 
>> Usually we have private constructors for statics only classes (as is the
>> case here). It sort of indicates it to the end users that the class is not
>> supposed to be instantiated. While technically you won't get true
>> polymorphism by inheriting from statics-only class in Java, it may still be
>> beneficial to add more static methods to a subclass I guess. So how about
>> we change that to protected? (in 3.2?)
>> 
>> Andrus
>> 
>> 
>> On Sep 8, 2014, at 11:18 PM, Michael Gentry <mgen...@masslight.net> wrote:
>>> FWIW, I tried to extend the Cayenne class (we had a discussion about that
>>> ages ago) and even though it is no longer final, it cannot be extended
>>> because of the private constructor.  Should we remove the private
>>> constructor to allow "subclassing" like Apache Commons allows?
>>> 
>>> Thanks,
>>> 
>>> mrg
>>> 
>>> 
>>> On Sat, Sep 6, 2014 at 3:03 AM, Andrus Adamchik <and...@objectstyle.org>
>>> wrote:
>>> 
>>>> Done.
>>>> 
>>>> Once I was a big fan of terse non-redundant APIs. Not anymore :) Now
>> that
>>>> we are moving in the direction of richer user-facing APIs, builders,
>> etc,
>>>> so this only makes sense to add this method back.
>>>> 
>>>> Andrus
>>>> 
>>>> 
>>>> On Sep 5, 2014, at 4:16 PM, Michael Gentry <mgen...@masslight.net>
>> wrote:
>>>>> I seem to recall a discussion on that particular method years ago, but
>>>>> don't remember the details (I'd have to go back and find it).
>>>>> 
>>>>> I'm fine with having deleteObject() just turn around and call
>>>>> deleteObjects() because it makes the calling code read better, even at
>>>> the
>>>>> "expense" of cluttering up the API (although this isn't much, really).
>>>>> 
>>>>> mrg
>>>>> 
>>>>> 
>>>>> 
>>>>> On Fri, Sep 5, 2014 at 7:07 AM, Andrus Adamchik <
>> and...@objectstyle.org>
>>>>> wrote:
>>>>> 
>>>>>> One possible last minute change is un-deprecating
>>>>>> ObjectContext.deleteObject(..). It can easily coexist with
>>>> 'deleteObjects',
>>>>>> and getting rid of it was not the best idea on my part.
>>>>>> 
>>>>>> Andrus
>>>>>> 
>>>>>> On Aug 30, 2014, at 9:28 PM, Andrus Adamchik <and...@objectstyle.org>
>>>>>> wrote:
>>>>>> 
>>>>>>> In preparation to the 3.1-final vote, I ran the same set of tests as
>> we
>>>>>> did for RC1. All tests are on Java 1.6 unless specified otherwise. You
>>>> can
>>>>>> compare it with the previous results at
>>>>>> http://markmail.org/message/slaj64iunxbeg4cs . Essentially everything
>>>> is
>>>>>> the same, so the latest 3.1 changes didn’t break anything obvious.
>>>> There’s
>>>>>> one less test failure on Oracle, which is related to my improved
>> Oracle
>>>>>> setup, rather than anything in Cayenne. Feel free to replicate the
>>>> results
>>>>>> in your own environment.
>>>>>>> 
>>>>>>> rat:  PASSED
>>>>>>> hsql: PASSED
>>>>>>> h2: PASSED
>>>>>>> derby: PASSED
>>>>>>> derby/Java7: PASSED
>>>>>>> mysql 5.0:  [1] PASSED
>>>>>>> mysql 5.6:  [2] PASSED
>>>>>>> sqlserver  [3] PASSED
>>>>>>> postgresql: Failures: 1
>>>>>> testBLOB(org.apache.cayenne.access.ReturnTypesMappingTest)
>>>>>>> oracle 11: Failed tests:
>>>>>>> testBIGINT(org.apache.cayenne.access.ReturnTypesMappingTest)
>>>>>>> testBIT(org.apache.cayenne.access.ReturnTypesMappingTest)
>>>>>>> testBOOLEAN(org.apache.cayenne.access.ReturnTypesMappingTest)
>>>>>>> testDOUBLE(org.apache.cayenne.access.ReturnTypesMappingTest)
>>>>>>> testFLOAT(org.apache.cayenne.access.ReturnTypesMappingTest)
>>>>>>> testREAL(org.apache.cayenne.access.ReturnTypesMappingTest)
>>>>>>> testSMALLINT(org.apache.cayenne.access.ReturnTypesMappingTest)
>>>>>>> testTINYINT(org.apache.cayenne.access.ReturnTypesMappingTest)
>>>>>>> 
>>>>>>> Tests run: 2150, Failures: 8, Errors: 0, Skipped: 0
>>>>>>> 
>>>>>>> [1] MySQL 5.0 config: [mysqld] max_allowed_packet=16M
>>>>>>> 
>>>>>>> [2] MySQL 5.6 config: [mysqld] max_allowed_packet=16M
>>>>>> lower_case_table_names = 1
>>>>>>> 
>>>>>>> [3] SQL Server 2005 Expression config: collation -
>>>>>> SQL_Latin1_general_CP1_CS_AS
>>>>>>> 
>>>>>>> Andrus
>>>>>> 
>>>>>> 
>>>> 
>>>> 
>> 
>> 

Reply via email to