Trying to Clone an array object that contains other objects

I have an employee object with the fields name (String), Salary (Double), and hireDay (Date). Since the date field contains many int fields (year, month etc..), using a straight clone will not work.
What I want to do is copy an array of employees into a new array.
For example:
Employee [] newEmps = (Employee[])OldEmps.clone()
In the employee class, I implement the Cloneable interface and my code so far will copy one Employee. How do I change this to copy an array of empoyees? Specifically, since hireDay contains many fields, a straight super.clone of the array won't work. Here is my clone code:
     public Object clone()
     try {
          // call Object.clone()
     Employee cloned = (Employee)super.clone();
          // clone mutable fields
cloned.hireDay = (Date)hireDay.clone();
     return cloned;
     catch (CloneNotSupportedException e)
     { return null; }
Any help is appreciated. Thanks!
-Eric

There's so much I don't understand about that, it just
isn't worth asking. Let me spell out my previous post
since it seems to have gone right over your
head.Employee[] emps;
// here you fill in the array of Employees
Employee[] clonedEmps = new Employee[emps.length];
for (int z=0; z<emps.length; z++) {I understand this next line of code. My question lies within the clone() function
clonedEmps[z] = emps[z].clone();OK - Let me try to clear things up. If we take from your example the original array "emps". Now for me, emps, is already filled up in main().
So in main() when I call emps.clone(), my clone function starts running:
// the employee class (which I created) implements the Cloneable
// interface
// This clone function is inside my employee class
public Object [] clone()
try {
Employee [] cloned = (Employee)super.clone();
// IS THIS NEXT LINE OF CODE REQUIRED TO MAKE A DEEP COPY? IF SO, How would I implement perhaps a for loop that would copy the hireDay from each element in the original array to the elements in the the new array?
// Obviously, each employee (element in the array) has a hireDay
// Please modify this next line of code to show me how.
cloned.hireDay = (Date)hireDay.clone();
return cloned;
catch (CloneNotSupportedException e)
{ return null; }
If I wanted to access say the "hireDay" field of the 3rd element in the original employee array INSIDE THE CLONE FUNCTION - then how would i access it?
Thanks
-Eric

Similar Messages

  • I know the name of an object - how do I get the name of the object that contains it?

    If I have a Movieclip, I can trace the name of the Movieclip
    that contains it using the _parent property.
    With a generic object, is there a way to trace the name of
    the object that contains it?
    Please, please tell me - this will be a huge help.
    Thanks

    Thanks for these comments - my problem isn't with MovieClips.
    I need to know if there is something which is the generic Objects
    equivalent to the MovieClips _parent property.
    Here's some code that hopefully will help explain further:
    class MyClass extends Object {
    var myObject:Object;
    function MyClass (){
    myFirstObject = new Object();
    myFirstObject.theParent = this;
    private function getNameOfParent(p_object:Object){
    // Some code to return the name of the object that contains
    p_object
    trace(p_object.__proto__); // Output: [object Object]
    trace(p_object._parent); // Output: undefined
    trace(p_object.theParent); // Output: [object Object]
    return ???
    public function doSomething(p_num:Number){
    var parentName = getNameOfParent(myObject);
    // do some more action...
    Timeline code:
    var myClass1 = new MyClass();
    myClass1.doSomething();

  • Scaling an object that contains a gradient

    I'm working in Illustrator CS3. Got a question: I'm looking to scale an object that contains a gradient, but I want the position of the gradient to remain in the same position on the page. That is, I don't want the gradient to scale along with the object. Is it possible to do this without manually rebuilding the gradient?

    Normal scaling of an object (using the Scale tool, Transform or dragging the bounding box) will always scale the gradient too, but there is a sort of workaround if you know where the gradient starts and ends in the original.
    If you haven't already marked the beginning and end of your gradient, do so by pasting a copy of it in front (Cmd-F) and expanding the gradient - then you can see its start and end points when you turn off the preview. Mark what you need with guides and delete the expanded gradient. It's useful to make a guide that follows the angle of the gradient.
    Now draw a gradient-filled rectangle behind your object and get the gradient to match the angle and position of the gradient in your object by dragging with the gradient tool according to the guides.
    Having done this, copy and scale your object and change it into a clipping mask that masks the rectangle you just drew. Alternatively you can make a masking layer of your object if you know how to do that.
    Lock the rectangle (if you are using a normal clipping mask) and then you can move the object (which is now a mask) at will and the gradient will stay put.
    This is all a bit long-winded but please get back to me if you're lost :-)

  • Trying to down load a file that contains .exe and .bin files on Unity(gaming builder)

    Trying to down load a file that contains .exe and .bin files on Unity(gaming builder). can this be done on iMac. it is a video game? It works fine in windows computer? dont know if this limited information helps. Is there a program or something i need to buy or download? Thanks

    Hello,
    .exe files are Windows® executable files, so you'd need Windows Installed.

  • Parsing a String object that contains the database details in jsp

    Hi All,
    In my project i have a model which is a bean that contains
    a method :-
    UserBean.java
    ....getUserData()
    //the database connection is written here.
    st.executeUpdate("insert ----------");
    In the servlet i am calling the bean,
    ControllerServlet.java
    UserBean ub=new UserBean();
    Object obj=ub.getUserData();
    session.putValue("something",obj); //Here the obj contains all the database datas that is used in insert query
    //By using RequestDispacher i am forwarding this request & the response
    to the jsp page
    ViewJsp.jsp
    String data=(String)session.getValue("something");
    //Here "data" now contains all the database contents that is stored using insert query in the bean
    From here i need to parse the "data" in order to display the contents
    stored in the string "data" in to a html table.
    Plz. do provide a solution for this.It is very Urgent at the moment.
    So that i will be very thankful to u.
    Thanx,
    contactananth

    ok, first of all, in getData, i assume you do a SELECT, not an INSERT,
    so your bean code should look like:
    ResultSet rs = st.executeQuery(...) // or somethig like that
    return rs; // it will contain the data you needand in the jsp you write:
    ResultSet rs = (ResultSet)session.getValue("something");
    instead of
    String data=(String)session.getValue("something");
    i assume you know how to work with a ResultSet

  • Creating objects that contain objects

    What's the best practice for creating an object from a table that contains a list of objects from another table? For example, say I have an employees table:
    EMPLOYEES
    id    name
    1     Derek Epperson
    2     Judy Johnsonand I also have an equipment table that contains all the equipment belonging to each employee
    EQUIPMENT
    id    emp_id   name
    101   1        Laptop Computer
    102   1        Flash Drive
    103   2        Desktop Computer
    104   2        Wireless RouterI want to create a Java function that will return create a List of two Employees, each with a List<Equipment> of that employee's equipment. One option is to create the Employees and then query for Equipment separately, like this:
    List<Employee> employees = myDAO.getEmployees();
    for (Employee employee : employees) {
      employee.setEquipment(myDAO.getEquipment(employee.getId()));
    }However, that is a lot of database calls. Is there an easy way to do this in a single query?

    By JOIN, you mean connect them so that a query will return something like this?
    EMPLOYEES
    id    name             equip_id   equip_name
    1     Derek Epperson   101        Laptop Computer
    1     Derek Epperson   102        Flash Drive
    2     Judy Johnson     103        Desktop Computer
    2     Judy Johnson     104        Wireless RouterThen I would have to check on each row whether the id had changed, a la:
    rs = ps.executeQuery(getEmployeesAndEquipmentJoin);
    int previousId = -1;
    Employee employee
    while (rs.next()) {
      if (rs.getInt("id") != previousId) {
        previousId = rs.getInt("id");
        employee = new Employee(rs);
        employees.add(employee);
      employee.getEquipment.add(new Equipment(rs));
    }That seems a little awkward, but if that's the best way to do it without ORM then I can work with that.

  • What is the best way to handle collections that contains different object

    Hi
    Suppose i have two class as below
    class Parent {
           private String name;
    class Child extends Parent {
          private int childAge;
    }I have a list that can contains both Child and Parent Object but in my jsp i want to display a childAge attribute ( preferrably not to use scriplet )
    what is the best way to achieve this?

    Having a collection containing different object types is already a bad start.
    How are parent and child related to each other? Shouldn't Child be a property of Parent?
    E.g.public class Parent {
        private Child child;
    }In any way, you could in theory just check Object#getClass()#getName(), but this is a nasty design.

  • Masking a movie clip that contains other movie clips

    hi,
    i am just trying out something in flash but it just doesnt
    work.
    I have a layer which has a movie clip which contains other
    movieclips in itself.
    Masking the layer that has the main movie clip causes the
    other movieclips in the main one to disappear when running the swf.
    Does any one have any idea how to get around this???
    thanks

    Hi,
    Recently, I have been putting together a flash presentation.
    And I am just wondering if the following might help you, in your
    communication with the said swf file:
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
    onComplete);
    function onComplete(event:Event):void
    event.target.content.thinggy_mc.y -= 100;
    Not the best example, but this allows you to target a mc
    within an external swf file. I think if you look up this code, you
    will have an answer ;)
    Kind Regards,
    Boxing Boom

  • Serializing classes that contain other classes

    Hi all,
    Hoping someone can answer me a quick question, I'm familiar enough with Java + OO in general but just starting to try to put a multiplayer game framework together so running into a few areas I haven't encountered before... so sorry if this is a bit of a newbie sounding question...
    I have a serializable class that contains a reference to another serializable class, very similar to:
    public class ClassA implements Serializable
        private ClassB b;
        ...and some other fields...
        public ClassA ()
            super ();
        ...and a standard public getB and setB
    public class ClassB implements Serializable
        int someValue;
        ...standard no arguments constructor...
        ...standard getSomeValue and setSomeValue...
    }Now that all works fine, serializes fine, send it down an ObjectOutputStream down a network socket, deserializes the other end, all no problem. What I don't like is that to create a ClassA I have to do:
    ClassA myClassA = new ClassA ();
    myClassA.setB (new ClassB ());   <--- this line
    myClassA.getB ().setSomeValue (5);because it could easily be ommitted (especially since the real situation is more complex that two simple classes like above) and I'll get a NullPointerException. Normally (in a non-serialized ClassA) I'd have put b = new ClassB (); in the constructor.
    However I don't like the idea of doing that because when deserializing a ClassA, I imagine the deserialization mechanism creates its own ClassB object to set into ClassA? And so if in the ClassA constructor, I create my own ClassB, then the deserialization will then immediately go and create its own ClassB and the ClassB I created will go to the garbage collector, i.e. it was a pointless object to create?
    Just wondering what suggestions anyone has on this, there must be a standard approach to deal with this?
    Thanks very much,
    Nigel.

    Allthough you give a lot of information I do not quite understand what you mean, but maybe a little re-arrangement of the setB en getB methods will do it:
    public ClassB getB() {
        if(b == null) {
            setB(new ClassB());
        return b;
    public void setB(ClassB b) {
        this.b = b;
    }

  • Cannot send emails that contain other asian languages

    i can receive emails that contian other languages, like chinese and korean. However, well i reply emails in those languages, people only receive smybols. I try to send it to my own email address as well, I also only receive symbols, like question marks. I'm using rogers but I don't think it has anything to do with the carriers because it was okay before. 

    Hello Hans
    The problem I have can be explained with what has happened to me just today!
    I was sitting in the back garden and wrote two emails. (Normally my EE Brightbox router will allow me to use wifi in the garden so I thought it safe to send them.)
    Wrong!
    Because I had no wifi signal for whatever reason, the emails were sent via my network (3) and not via the EE wifi network.
    3 then attempted to send them via smtp.orangehome.co.uk (specified in my mailbox setup on my phone since EE insists I use that outgoing server) and I assume that EE then refused to accept them since they did not originate from an EE user. The phone (Lumia 920) at that point froze with the 'Sycnhronising' message static on the screen. When I went to 'email setup' I got a message to tell me that there was a problem with my email setup. Whether the main problem or not, my email password had been lost and even when re-entered, I had to switch the phone off and on to stop the  'Sycnhronising' message and get access to email.
    This was slightly different from previous situations - normally I get the numeric error message mentioned earlier. Even now that I have deleted the two emails from the outbox I still cannot use email until I delete and recreate my email account.
    I have my own email server which I would prefer to use for outgoing mail as opposed to EE and the Lumia does not offer any facility to alter outgoing ports (as far as I an see).
    Sorry if the reply is a bit wordy but I do feel that this situation deserves wider exposure as had I known earlier I would have chosen a broadband supplier who did not dictate the setting for outgoing mail server.
    John H.D. Tuach

  • How can I get the Doc object from any other object?

    Dear colleagues,
    in FrameScript it is dead-simple to get to the document part of any object, just add .Doc to the variable.
    How can I achieve the same with ExtendScript? I amtired of passing the document object next to AFrames or Pgfs along into subroutines, because those objects already contain the information about their document. But how do I access this?
    Thanks for pointers,
    - Michael
    PS: Almost the same is true for the page an object lives on. With FrameScript we use .Page, with ExtendScript you have to move up the object tree until you reach the UnanchoredFrame.PageFramePage…
    PPS: It would be great to see some convenience properties like .Doc and .Page implemented natively.

    I'll preface this response by admitting this far from an elegant solution, but I did write a function addressing this question, mostly as an exercise.
    If passed an object with an InTextFrame property (Pgf, AFrame, Cell, Fn) that resides in an open document, the function will return the Doc object. Otherwise, it returns undefined.
    function getParentDoc(testObj) {
        //Get object for current page
        try { var curPage = testObj.InTextFrame.FrameParent.PageFramePage; }
        catch(er) {return;}
        //Step backwards to first page in document
        var prevPage = curPage.PagePrev;
        while (prevPage.ObjectValid())
            curPage = prevPage;
            prevPage = prevPage.PagePrev;
        //Compare with first pages of open documents
        var testDoc = app.FirstOpenDoc;
        while (testDoc.ObjectValid())
            if (curPage.id==testDoc.FirstBodyPageInDoc.id) return testDoc;
            testDoc = testDoc.NextOpenDocInSession;    
        return;
    To your PPS: Rather than seeing the native framework grow bloated to address additional features, I would love to see Adobe and other developers publish libraries of useful functions and class extensions.

  • How to recover a state of  one objects threads by other object

    hi everyone
    how to recover a state of one object's threads by other object..
    i am creating a object in that i have 10 thread..... i have started it then i have closed that object ...then i am creating a new object for the same class ...i need to stop those thread which i have started earlier

    saiyath_babuhussain wrote:
    hi everyone
    how to recover a state of one object's threads by other object..Objects don't own threads so that's hard to understand
    >
    i am creating a object in that i have 10 thread..... i have started it then i have closed that object ...then i am creating a new object for the same class ...i need to stop those thread which i have started earlierWe don't so much stop threads as inform them politely that their services are no longer required. When you have a long running thread it's almost always a loop, often with a wait or sleep which causes it to wait until it's activitty is needed.
    So if you want to be able to wind up a thread from another thread then you put a boolean flag in which can break the loop. The other thread then changes that flag and calls interupt() on the thread it's trying to stop. Interupt will kick the thread out of wait or sleep if that's where it is, causing an InterruptedException. On discovering that the flag indicates it should stop, or on catching an InterruptedException the thread should then clean up and finish.
    The master thread can call join on the thread it's stopping if it needs to wait for it to terminate.

  • Access object attributes using other object JNI native method

    Hi. I'm trying to change an attribute of object O1 from another object O2 without invoking a O1 method and without making the attribute as public or protected.
    The only possibility that comes to my mind for doing so is writting a JNI native method
    public class O1 {
    static public native changeAttribute (Object O2, Object newAttributeValue) ;
    that change the attribute memory reference, but all I've found about accesing attributes in JNI is about accessing the invoker attributes (in this case, O1).
    �Does any one know if it's possible to do so? Thanks.

    I know that is not a good practice but I cannot figure out another way.
    I'll try to explain the whole problem so you see the reason. I'm working with transactions, using objects as the data. An object can be opened for write by several transactions because the granularity for conflicts is not the object, is each of its attributes. As long as two transaction don't write the same attribute, they both can write. For writing, each transactions uses a private copy of the object. At committing, the actual copy of the object must be replaced by the committer one, but as far as the granularity is the object attributes, only each written attribute must be replaced (if not, only the last commit would be visible).
    This attribute replace must be done by the transaction manager as far as the transactional object is provided by the client. So what i was thinking was to use JNI or some trick like that to replace the object attributes transparently to the object.
    I hope the explain is clear, my english is a little asleep :-(.
    How to do it with reflection? I thought that was only for method calling. Anyway, there wouldn't be problems if the attributes are private?
    Thanks for answering.
    EDIT: I've been able to change a public field using reflection, but not the private one
    import java.lang.reflect.*;
    class Caca {
    public static void main(String[] args) {
    Integer r = new Integer(0);
    System.out.println("original: " + r.toString());
    modifyWidth(r, 300);
    System.out.println("modified: " + r.toString());
    static void modifyWidth(Integer r, int newValue ) {
    Field valueField; Class c = r.getClass();
    try {
    valueField = c.getField("value");
    valueField.set(r, newValue);
    } catch (Exception e) { System.out.println(e); }
    Message was edited by:
    dfasdfsdafsadfasdf

  • How to find object use in other object

    Hi All,
    I want to find one object for example procedure which is used in other object like function,procedure or view.
    How can i find it?
    Thanks in advance.

    user647572 wrote:
    Hi All,
    I want to find one object for example procedure which is used in other object like function,procedure or view.
    How can i find it?
    Thanks in advance.Use DBA_DEPEDENCIES view :
    SQL> create table my_tab (id number);
    Table created.
    SQL> create or replace procedure my_proc
      2  as
      3  p_id number;
      4  begin
      5  select id into p_id from my_tab;
      6  end;
      7  /
    Procedure created.
    SQL> select owner, name, referenced_name from dba_dependencies where referenced_name='MY_TAB';
    OWNER      NAME                 REFERENCED_NAME
    SYS        MY_PROC              MY_TAB
    SQL>

  • Returning an object that contains a collection WL 9.2

    Hello,
    I have a class like this:
    public class data {
    private Collection<MyObject> coll; //MyObject is another class
    If I return this object from a web service call, i.e.
    @WebService
    public class HelloWorld {
         @WebMethod
    public data hello() {
    I get an error saying java class MyObject is not known, which makes sense, because I only declared "HelloWorld" to jwsc task.
    How can I make this class known, by annotation etc.?
    Someone suggested to use "IncludeSchema" in the jwsc task, but apparently that has been deprecated.
    Thanks!
    Edited by ghosh007 at 02/21/2008 12:59 PM
    Edited by ghosh007 at 02/21/2008 1:23 PM

    Hi,
    As you have this "Artiicle" class, extend it to be serializable and then define an Array of type Artiicle. So the return type would be an Array of a complex type i.e. Articles. In WSDL there will be type that defines an Array and this type can be used as a return message for your methode.
    Try this, I think it will help you.
    Regards,

Maybe you are looking for