esoe 2 years ago
parent
commit
137a059760
  1. 84
      book/src/main/java/ru/molokoin/Book.java
  2. 30
      book/src/main/java/ru/molokoin/Publisher.java
  3. BIN
      book/target/classes/ru/molokoin/Book.class
  4. BIN
      book/target/classes/ru/molokoin/Publisher.class

84
book/src/main/java/ru/molokoin/Book.java

@ -5,18 +5,56 @@ public class Book {
private Publisher publisher; private Publisher publisher;
private int year; private int year;
private String[] authors; private String[] authors;
private Publisher[] publishers = Publisher.getDefaultArray();
Book(){} Book(){}
Book(Object name, Object year, Object publisher){} Book(String name, int year, Publisher publisher){}
Book(Object name, Object author, Object year, Object publisher){ Book(String name, String author, int year, Publisher publisher){
this(name, year, publisher); this(name, year, publisher);
setAuthors(uppendAuthors((String)author)); setAuthors(uppendAuthors((String)author));
} }
Book(Object name, Object[] authors, Object year, Object publisher){ Book(String name, String[] authors, int year, Publisher publisher){
this(name, year, publisher); this(name, year, publisher);
String[] a = (String[]) authors; String[] a = (String[]) authors;
setAuthors(a); setAuthors(a);
} }
//добавляем список авторов public static Book[] getDefaultArray(){
Book[] books = new Book[2];
//book 1
String name = "Computer Science: основы программирования на Java, ООП, алгоритмы и структуры данных";
books[0] = new Book();
books[0].setName(name);
books[0].uppendAuthors("Седжвик Роберт");
books[0].uppendAuthors("Уэйн Кевин");
books[0].setPublisher(Publisher.getPublisherByName(Publisher.getDefaultArray(), "Питер"));
books[0].setYear(2018);
//book 2
name = "Разработка требований к программному обеспечению. 3-е издание, дополненное";
books[1] = new Book();
books[1].setName(name);
books[1].uppendAuthors("Вигерс Карл");
books[1].setPublisher(Publisher.getPublisherByName(Publisher.getDefaultArray(), "БХВ"));
books[1].setYear(2019);
return books;
}
public void print(){
System.out.println("-------------------------------");
System.out.println(toString());
System.out.println("Наименование книги (name) :: " + name);
getPublisher().print();
System.out.println("Год издания (year) :: " + year);
System.out.println("Авторы:");
int i = 0;
while (i < getAuthorsCount()){
System.out.println((i + 1) + ". " + getAuthors()[i]);
i++;
}
System.out.println("-------------------------------");
}
//TODO добавляем список авторов
public String[] uppendAuthors(String author){ public String[] uppendAuthors(String author){
String[] result; String[] result;
try { try {
@ -25,15 +63,14 @@ public class Book {
e.printStackTrace(); e.printStackTrace();
result = new String[1]; result = new String[1];
result[0] = author; result[0] = author;
return result; } finally {
} result = new String[getAuthorsCount() +1];
result = new String[getAuthorsCount() + 1];
int i = 0; int i = 0;
while (i < getAuthorsCount()){ while (i < getAuthorsCount()){
result[i] = getAuthorByIndex(i); result[i] = getAuthorByIndex(i);
i++; i++;
} }
result[getAuthorsCount()] = author; }
return result; return result;
} }
public String getAuthorByIndex(int index){ public String getAuthorByIndex(int index){
@ -42,8 +79,15 @@ public class Book {
} }
//количество авторов книги //количество авторов книги
public int getAuthorsCount(){ public int getAuthorsCount(){
//TODO проверить наличие массива - null int count = 0;
return getAuthors().length; try {
if (getAuthors() == null) throw new NullPointerException("авторы еще не добавлены в список ...");
} catch (NullPointerException e) {
count = 0;
} finally {
count = getAuthors().length;
}
return count;
} }
/** /**
* @param name the name to set * @param name the name to set
@ -95,7 +139,25 @@ public class Book {
* @return the author * @return the author
*/ */
public String[] getAuthors() { public String[] getAuthors() {
return authors; String[] result = new String[0];
try {
if (authors == null) throw new NullPointerException("Авторы еще не заносились в список ...");
} catch (NullPointerException e) {
// TODO: handle exception
e.printStackTrace();
result = new String[0];
} finally {
result = authors;
}
return result;
}
public static void main(String[] args) {
Book[] books = Book.getDefaultArray();
int i = 0;
while (i < books.length){
books[i].print();
i++;
}
} }
} }

30
book/src/main/java/ru/molokoin/Publisher.java

@ -11,15 +11,11 @@ public class Publisher {
setName(name); setName(name);
setSity(sity); setSity(sity);
} }
//выводим в консоль данные Издательства
public void print(){
System.out.println("Издательство: " + getName() + " ----> " + "город: " + getSity());
}
/** /**
* Метод класса. Возвращает массив данных об издательствах по умолчанию * Метод класса. Возвращает массив данных об издательствах по умолчанию
* @return * @return
*/ */
public static Publisher[] getDefaults(){ public static Publisher[] getDefaultArray(){
Publisher[] defaultPublishers = new Publisher[4]; Publisher[] defaultPublishers = new Publisher[4];
defaultPublishers[0] = new Publisher("Проспект", "Москва"); defaultPublishers[0] = new Publisher("Проспект", "Москва");
defaultPublishers[1] = new Publisher("Питер", "Санкт-Петербург"); defaultPublishers[1] = new Publisher("Питер", "Санкт-Петербург");
@ -27,6 +23,10 @@ public class Publisher {
defaultPublishers[3] = new Publisher("Диалектика", "Киев"); defaultPublishers[3] = new Publisher("Диалектика", "Киев");
return defaultPublishers; return defaultPublishers;
} }
//выводим в консоль данные Издательства
public void print(){
System.out.println("Издательство: " + getName() + " ----> " + "город: " + getSity());
}
/** /**
* @param name the name to set * @param name the name to set
* DONE: имя издательства не олжно быть пустой ссылкой * DONE: имя издательства не олжно быть пустой ссылкой
@ -67,8 +67,26 @@ public class Publisher {
public String getSity() { public String getSity() {
return sity; return sity;
} }
public static Publisher getPublisherByName(Publisher[] publishers, String name){
Publisher publisher = new Publisher();
boolean isAcsists = false;
int i = 0;
while (i < publishers.length){
if (name.equals((String)publishers[i].getName())){
publisher = publishers[i];
isAcsists = true;
}
i++;
}
try {
if(!isAcsists) throw new Exception("Указанное наименование издательства не найдено в каталоге. Установлено наименование города по умолчанию {noname sity} ...");
} catch (Exception e) {
publisher = new Publisher(name, null);
}
return publisher;
}
public static void main(String[] args) { public static void main(String[] args) {
Publisher[] publishers = Publisher.getDefaults(); Publisher[] publishers = Publisher.getDefaultArray();
int i = 0; int i = 0;
while (i < publishers.length){ while (i < publishers.length){
publishers[i].print(); publishers[i].print();

BIN
book/target/classes/ru/molokoin/Book.class

Binary file not shown.

BIN
book/target/classes/ru/molokoin/Publisher.class

Binary file not shown.
Loading…
Cancel
Save