Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UML diagram to Java code

Tags:

java

uml

I'm new to Java and am trying to work through some questions where I have to convert a UML diagram to Java code: I have an image of the uml document-

http://s1079.photobucket.com/albums/w513/user20121/?action=view&current=uml.jpg

I'll show you what I have so far:

Q1: Write a Java version of class Entry assuming it has this constructor: public Entry(String name) and that the method getSize is abstract. A:

public abstract class Entry {
    private String name;

    public Entry(String name){
        this.name =  name;
    }
    public String getName()
    {
        return name;
    }
    abstract long getSize();
}

Q2: Write a Java version of class File assuming it has this constructor: public File(String name, long size) A:

public class File extends Entry {
    private long size;

    public File(String name, long size){
        super(name);
        this.size = size;
    }

    public long getSize(){
        return size;
    }
}

Q3: A directory contains a collection of files and directories. Write a Java version of class Directory assuming it has this constructor: public Directory(String name) and the method getSize returns the total size of all the files in the directory and all its sub-directories (in this model the size of a directory itself is ignored).

A: This is where I get stuck, I don't know what to do about the getSize method. Can anyone tell me whether what I have done so far is correct? And also point me in the right direction for Q3?

Edit: okay I have attempted an answer but I really I don't know what I'm doing..

import java.util.ArrayList;

public class Directory extends Entry {

    ArrayList <Entry> entries = new ArrayList<Entry>();

    public Directory(String name)
    {
        super(name);
    }

    public long getSize(){
        long size;
        for(int i=0;i<entries.size();i++)
        {
        size +=  //don't know what to put here?
        }
        return size;
    }
}
like image 959
user1354270 Avatar asked Jun 28 '26 08:06

user1354270


1 Answers

Your answers for Q1 and Q2 are looking fine.

Regarding Q3:

// A Directory is an Entry and can contain an arbitrary number of other Entry objects
public class Directory extends Entry {

    // you need a collection of Entry objects, like ArrayList<Entry>
    // ArrayList<Entry> entries = ...

    function getSize() {
        long size;
        // now we calculate the sum of all sizes
        // we do not care if the entries are directories or files
        // the respective getSize() methods will automatically do the "right thing"
        // therefore: you iterate through each entry and call the getSize() method
        // all sizes are summed up
        return size;
    }

}
like image 81
Alp Avatar answered Jun 29 '26 21:06

Alp



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!