diff --git a/files/src/main/java/ru/molokoin/Audio.java b/files/src/main/java/ru/molokoin/Audio.java index 73fcff9..23c40ed 100644 --- a/files/src/main/java/ru/molokoin/Audio.java +++ b/files/src/main/java/ru/molokoin/Audio.java @@ -1,10 +1,72 @@ package ru.molokoin; +/** + * Класс, хранящий данные о аудиотреке/audio + */ public class Audio extends File{ + private String format; + private String content; + private Duration duration; - public Audio(String name, byte size, Extension extension) { + /** + * Основной конструктор файлов аудио + * @param name + * @param size + * @param extension + * @param format + * @param content + * @param duration + */ + public Audio(String name, int size, Extension extension, String format, String content, Duration duration) { super(name, size, extension); - //TODO Auto-generated constructor stub + setFormat(format); + setContent(content); + setDuration(duration); + } + + @Override + public void print() { + System.out.println("--------------------------------------------"); + super.print(); + System.out.println("format: " + getFormat()); + System.out.println("content: " + getContent()); + System.out.println("duration: " + getDuration().getSeconds() + " sec."); + } + /** + * @return the format + */ + public String getFormat() { + return format; + } + /** + * @param format the format to set + */ + public void setFormat(String format) { + this.format = format; + } + /** + * @return the content + */ + public String getContent() { + return content; + } + /** + * @param content the content to set + */ + public void setContent(String content) { + this.content = content; + } + /** + * @return the duration + */ + public Duration getDuration() { + return duration; + } + /** + * @param duration the duration to set + */ + public void setDuration(Duration duration) { + this.duration = duration; } } diff --git a/files/src/main/java/ru/molokoin/Document.java b/files/src/main/java/ru/molokoin/Document.java index 60b1050..32a1397 100644 --- a/files/src/main/java/ru/molokoin/Document.java +++ b/files/src/main/java/ru/molokoin/Document.java @@ -1,20 +1,12 @@ package ru.molokoin; +/** + * Класс, хранящий метаданные о документе/document + */ public class Document extends File{ private String format; private int lists; - /** - * Базовый конструктор класса File - * @param name - * @param size - * @param extension - */ - public Document(String name, byte size, Extension extension) { - super(name, size, extension); - //TODO Auto-generated constructor stub - } - /** * Основной конструктор документа * @param name @@ -23,27 +15,18 @@ public class Document extends File{ * @param format * @param lists */ - public Document(String name, byte size, Extension extension,String format, int lists) { + public Document(String name, int size, Extension extension,String format, int lists) { super(name, size, extension); - init(format, lists); - } - - /** - * Инициируем атрибуты документа: - * формат и количество страниц. - * @param format - * @param lists - */ - public void init(String format, int lists){ setFormat(format); setLists(lists); } + + @Override public void print(){ + System.out.println("--------------------------------------------"); super.print(); System.out.println("format: " + getFormat()); System.out.println("lists: " + getLists()); - System.out.println("--------------------------------------------"); - } public void setFormat(String format) { this.format = format; diff --git a/files/src/main/java/ru/molokoin/Duration.java b/files/src/main/java/ru/molokoin/Duration.java new file mode 100644 index 0000000..3159ca0 --- /dev/null +++ b/files/src/main/java/ru/molokoin/Duration.java @@ -0,0 +1,36 @@ +package ru.molokoin; + +/** + * Класс хранит данные о длительности (аудио/видео). + * TODO подготовить формат возвращаемого значения в виде: ХХ мин. ХХ сек. + */ +public class Duration { + private long milliseconds; + public Duration(long milliseconds){ + setMilliseconds(milliseconds); + } + public void print(){ + System.out.println(getSeconds() + "секунд."); + } + /** + * Возвращает время в секундах + * @return + */ + public long getSeconds(){ + return getMilliseconds()/1000; + } + + /** + * @param milliseconds the milliseconds to set + */ + public void setMilliseconds(long milliseconds) { + this.milliseconds = milliseconds; + } + /** + * @return the milliseconds + */ + public long getMilliseconds() { + return milliseconds; + } + +} diff --git a/files/src/main/java/ru/molokoin/File.java b/files/src/main/java/ru/molokoin/File.java index 7b3936b..5e5b9f0 100644 --- a/files/src/main/java/ru/molokoin/File.java +++ b/files/src/main/java/ru/molokoin/File.java @@ -2,27 +2,26 @@ package ru.molokoin; /** * Класс - обертка - * */ public class File { private String name; - private byte size; + private int size; private Extension extension; - public File(String name, byte size, Extension extension){ + public File(String name, int size, Extension extension){ setName(name); setSize(size); setExtension(extension); } public void print(){ System.out.println("name: " + getName()); - System.out.println("size: " + (byte) getSize()); + System.out.println("size: " + getSize() + "byte"); System.out.println("extension: " + extension); } public void setName(String name) { this.name = name; } - public void setSize(byte size) { + public void setSize(int size) { this.size = size; } public void setExtension(Extension extension) { @@ -31,7 +30,7 @@ public class File { public String getName() { return name; } - public byte getSize() { + public int getSize() { return size; } public Extension getExtension() { diff --git a/files/src/main/java/ru/molokoin/Image.java b/files/src/main/java/ru/molokoin/Image.java index 851b60d..5c5acbd 100644 --- a/files/src/main/java/ru/molokoin/Image.java +++ b/files/src/main/java/ru/molokoin/Image.java @@ -1,19 +1,22 @@ package ru.molokoin; +/** + * Класс, хранящий метаданные о изображении/image + */ public class Image extends File{ private String format; private Dimensions dimensions; - public Image(String name, byte size, Extension extension, String format, Dimensions dimensions) { + public Image(String name, int size, Extension extension, String format, Dimensions dimensions) { super(name, size, extension); init(format, dimensions); } + @Override public void print(){ + System.out.println("--------------------------------------------"); super.print(); System.out.println("format: " + getFormat()); System.out.println("Dimensions: " + getDimensions().getHeight() + " x " + getDimensions().getWidth()); - System.out.println("--------------------------------------------"); - } public void init(String format, Dimensions dimensions){ setFormat(format); diff --git a/files/src/main/java/ru/molokoin/Storage.java b/files/src/main/java/ru/molokoin/Storage.java index 63db2d3..6fd3313 100644 --- a/files/src/main/java/ru/molokoin/Storage.java +++ b/files/src/main/java/ru/molokoin/Storage.java @@ -5,6 +5,7 @@ import java.util.Arrays; /** * Класс - хранилище информации обо всех файлах * предоставляет инструментарий обращения с массивом файлов + * TODO формат вывода преобразовать в табличный вид */ public class Storage { private File[] files; @@ -25,6 +26,10 @@ public class Storage { i++; } } + /** + * Метод, добавляющий файл в хранилище/storage + * @param file + */ public void add(File file) { if(getFiles() == null){ File[] result = new File[1]; @@ -39,10 +44,18 @@ public class Storage { } public static void main(String[] args) { Storage storage = new Storage(); - storage.add(new Document("myDocument", (byte)10, Extension.DOCUMENT, "txt", 5)); - storage.add(new Image("myImage", (byte)15, Extension.IMAGE, "jpg", new Dimensions(12, 8))); + //Заполняем массив исходными данными + storage.add(new Document("myDocument", 10, Extension.DOCUMENT, "txt", 5)); + storage.add(new Image("myImage", 15, Extension.IMAGE, "jpg", new Dimensions(12, 8))); + storage.add(new Audio("myAudio", 50, Extension.AUDIO, "mp3", "some melody", new Duration(20000))); + storage.add(new Video("myVideo" + , 100500 + , Extension.VIDEO + , "mpeg" + , "some video content" + , new Duration(100500) + , new Dimensions(1024, 768))); storage.print(); - } } diff --git a/files/src/main/java/ru/molokoin/Video.java b/files/src/main/java/ru/molokoin/Video.java index 91042f0..2d47c32 100644 --- a/files/src/main/java/ru/molokoin/Video.java +++ b/files/src/main/java/ru/molokoin/Video.java @@ -1,10 +1,31 @@ package ru.molokoin; -public class Video extends File{ +/** + * Класс, хранящий метаданные о видео/video + */ +public class Video extends Audio{ + private Dimensions dimensions; - public Video(String name, byte size, Extension extension) { - super(name, size, extension); - //TODO Auto-generated constructor stub + public Video(String name, int size, Extension extension, String format, String content, Duration duration, Dimensions dimensions) { + super(name, size, extension, format, content, duration); + setDimensions(dimensions); + } + @Override + public void print() { + super.print(); + System.out.println(dimensions.getWidth() + " x " + dimensions.getHeight()); + } + /** + * @param dimensions the dimensions to set + */ + public void setDimensions(Dimensions dimensions) { + this.dimensions = dimensions; + } + /** + * @return the dimensions + */ + public Dimensions getDimensions() { + return dimensions; } } diff --git a/files/target/classes/ru/molokoin/Audio.class b/files/target/classes/ru/molokoin/Audio.class index 1e55fef..693e7d0 100644 Binary files a/files/target/classes/ru/molokoin/Audio.class and b/files/target/classes/ru/molokoin/Audio.class differ diff --git a/files/target/classes/ru/molokoin/Document.class b/files/target/classes/ru/molokoin/Document.class index 5193b4d..6a946dc 100644 Binary files a/files/target/classes/ru/molokoin/Document.class and b/files/target/classes/ru/molokoin/Document.class differ diff --git a/files/target/classes/ru/molokoin/Duration.class b/files/target/classes/ru/molokoin/Duration.class new file mode 100644 index 0000000..9d87c42 Binary files /dev/null and b/files/target/classes/ru/molokoin/Duration.class differ diff --git a/files/target/classes/ru/molokoin/File.class b/files/target/classes/ru/molokoin/File.class index fa0c8f2..a589f02 100644 Binary files a/files/target/classes/ru/molokoin/File.class and b/files/target/classes/ru/molokoin/File.class differ diff --git a/files/target/classes/ru/molokoin/Image.class b/files/target/classes/ru/molokoin/Image.class index 0bc117c..68ee0d6 100644 Binary files a/files/target/classes/ru/molokoin/Image.class and b/files/target/classes/ru/molokoin/Image.class differ diff --git a/files/target/classes/ru/molokoin/Storage.class b/files/target/classes/ru/molokoin/Storage.class index 8618128..81d61c5 100644 Binary files a/files/target/classes/ru/molokoin/Storage.class and b/files/target/classes/ru/molokoin/Storage.class differ diff --git a/files/target/classes/ru/molokoin/Video.class b/files/target/classes/ru/molokoin/Video.class index 6e529bd..1412ed5 100644 Binary files a/files/target/classes/ru/molokoin/Video.class and b/files/target/classes/ru/molokoin/Video.class differ