cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Hugi Thordarson <h...@karlmenn.is>
Subject Re: Copy/Clone Mutable Objects?
Date Mon, 08 Sep 2014 13:02:58 GMT
That won't help with mutable types, since modifying them will not use the setter method.

- hugi



On 8.9.2014, at 12:58, Mike Kienenberger <mkienenb@gmail.com> wrote:

> I think it would be difficult to enforce, even if we wanted to
> disallow it, since any non-primitive could be mutable.
> 
> What I might do is to change my templates so that certain types, like
> Date and byte[], are automatically cloned in the setter methods,
> though.
> 
> 
> On Mon, Sep 8, 2014 at 8:54 AM, Michael Gentry <mgentry@masslight.net> wrote:
>> I think everyone is getting wrapped up around Dates.  My general question
>> was about mutable types.
>> 
>>  byte[] data = { 1, 2, 3, 4 };
>>  person.setData(data);
>>  data[0] = 5;
>>  for (int i = 0; i < person.getData().length; i++)
>>      System.out.println("Data[" + i + "] = " + person.getData()[i]);
>> 
>> Data[0] = 5
>> 
>> Data[1] = 2
>> 
>> Data[2] = 3
>> 
>> Data[3] = 4
>> 
>> Again, modifying the original value changes what is stored internally by
>> Cayenne.
>> 
>> Thanks,
>> 
>> mrg
>> 
>> 
>> On Mon, Sep 8, 2014 at 3:39 AM, Aristedes Maniatis <ari@maniatis.org> wrote:
>> 
>>> And https://github.com/ThreeTen/threetenbp for Java 6/7 users.
>>> 
>>> Ari
>>> 
>>> 
>>> On 8/09/2014 4:42pm, Andrus Adamchik wrote:
>>>> Also Java 8 Date and Time if Java 8 is an option:
>>>> 
>>>> 
>>> http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html
>>>> 
>>>> Andrus
>>>> 
>>>> On Sep 8, 2014, at 4:17 AM, John Huss <johnthuss@gmail.com> wrote:
>>>> 
>>>>> Sure, use Joda time.
>>>>> On Sep 6, 2014 8:15 PM, "Michael Gentry" <mgentry@masslight.net>
wrote:
>>>>> 
>>>>>> Is that a realistic option?
>>>>>> 
>>>>>> 
>>>>>> On Sat, Sep 6, 2014 at 6:55 PM, John Huss <johnthuss@gmail.com>
wrote:
>>>>>> 
>>>>>>> My thoughts are: don't use Date.
>>>>>>> On Sep 6, 2014 4:58 PM, "Michael Gentry" <mgentry@masslight.net>
>>> wrote:
>>>>>>> 
>>>>>>>> Should Cayenne copy/clone mutable objects, such as Date?
>>>>>>>> 
>>>>>>>> For example, if I modify a date after setting it in a Cayenne
object
>>>>>>>> (person), it modifies the value stored by Cayenne:
>>>>>>>> 
>>>>>>>> SimpleDateFormat timeFormat = new SimpleDateFormat ("yyyy-MM-dd");
>>>>>>>> Date d1 = timeFormat.parse("2014-02-01");
>>>>>>>> person.setStartDate(d1);
>>>>>>>> d1.setYear(2013 - 1900); // Date hackery
>>>>>>>> System.out.println("Start Date = " + person.getStartDate());
>>>>>>>> 
>>>>>>>> This outputs:
>>>>>>>> 
>>>>>>>> Start Date = Fri Feb 01 00:00:00 EST 2013
>>>>>>>> 
>>>>>>>> I've never actually experienced an issue with Cayenne not
copying a
>>>>>>>> Date/etc, but was wondering your thoughts on this.
>>>>>>>> 
>>>>>>>> Thanks,
>>>>>>>> 
>>>>>>>> mrg
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>> 
>>> 
>>> --
>>> -------------------------->
>>> Aristedes Maniatis
>>> GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A
>>> 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message