Skip to content

Commit f6909d7

Browse files
author
Ilia_Isakhin
committed
added hw#2
1 parent 465d439 commit f6909d7

11 files changed

Lines changed: 182 additions & 14 deletions

File tree

src/main/java/ru/izh/online/course/task1/Main.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@
77
import ru.izh.online.course.task1.entity.dev.BackendDeveloper;
88
import ru.izh.online.course.task1.entity.dev.FrontendDeveloper;
99

10-
import java.util.Arrays;
11-
import java.util.List;
12-
1310
public class Main {
1411

1512
public static void main(String[] args) {
@@ -18,13 +15,13 @@ public static void main(String[] args) {
1815
Developer techLead = new BackendDeveloper();
1916
project.assignTechLead(techLead);
2017

21-
List<Developer> team = Arrays.asList(
18+
Developer[] team = {
2219
new FrontendDeveloper(),
2320
new FrontendDeveloper(),
2421
new BackendDeveloper(),
2522
new BackendDeveloper(),
2623
new AutomatedTester()
27-
);
24+
};
2825
project.addTeam(team);
2926
}
3027
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package ru.izh.online.course.task1.entity;
22

33
/**
4-
* Абстрактный разработчик. Должен иметь поля: имя, фамилию, уровень, список названий скиллов, опыт работы.
4+
* Абстрактный разработчик. Должен иметь поля: имя, фамилию, уровень, список скиллов, опыт работы.
55
*/
66
public abstract class Developer {
77
}

src/main/java/ru/izh/online/course/task1/entity/Project.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package ru.izh.online.course.task1.entity;
22

3-
import java.util.List;
4-
53
/**
64
* Проект
75
*/
@@ -18,10 +16,10 @@ public interface Project {
1816
* Назначает всю команду в проект. Метод ОБЯЗАН вызывать метод addDeveloper
1917
* @param developers
2018
*/
21-
boolean addTeam(List<Developer> developers);
19+
boolean addTeam(Developer[] developers);
2220

2321
/**
24-
* Назначает разработчика на проект. Должен проверять скиллы
22+
* Назначает разработчика на проект. Должен вызывать isDeveloperFits
2523
* @param developer
2624
* @return
2725
*/

src/main/java/ru/izh/online/course/task1/entity/SimpleProject.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
package ru.izh.online.course.task1.entity;
22

3-
import java.util.List;
4-
53
/**
64
* Сущность проект. У проекта есть id, техлид (разработчик уровня 5), команда разработки(бек-девелоперы, тестеры,
7-
* фронт-девелоперы), заказчик, дата старта, предположительная дата окончания, список названий технологий
5+
* фронт-девелоперы), заказчик, дата старта, предположительная дата окончания, список необходимых скиллов
86
*/
97
public class SimpleProject implements Project{
108

@@ -16,7 +14,7 @@ public boolean isDeveloperFits(Developer developer) {
1614
return false;
1715
}
1816

19-
public boolean addTeam(List<Developer> developers) {
17+
public boolean addTeam(Developer[] developers) {
2018
return false;
2119
}
2220

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package ru.izh.online.course.task2;
2+
3+
import ru.izh.online.course.task2.service.BookService;
4+
import ru.izh.online.course.task2.service.SimpleBookService;
5+
6+
public class Main {
7+
8+
public static void main(String[] args) {
9+
BookService bookService = new SimpleBookService();
10+
11+
12+
}
13+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package ru.izh.online.course.task2.entity;
2+
3+
public class Author {
4+
5+
private long id;
6+
private String name;
7+
8+
public Author(long id, String name) {
9+
this.id = id;
10+
this.name = name;
11+
}
12+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package ru.izh.online.course.task2.entity;
2+
3+
import java.time.LocalDate;
4+
5+
public class Book {
6+
7+
private long id;
8+
private String name;
9+
private int pages;
10+
private Author author;
11+
private LocalDate publishDate;
12+
13+
public Book(long id, String name, int pages, Author author, LocalDate publishDate) {
14+
this.id = id;
15+
this.name = name;
16+
this.pages = pages;
17+
this.author = author;
18+
this.publishDate = publishDate;
19+
}
20+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package ru.izh.online.course.task2.repository;
2+
3+
import ru.izh.online.course.task2.entity.Book;
4+
5+
import java.util.Date;
6+
7+
public interface BookRepository {
8+
9+
boolean get(long id);
10+
boolean add(Book book);
11+
boolean remove(Book book);
12+
Book[] getAll(String authorName);
13+
Book[] getAll(Date publishDate);
14+
15+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package ru.izh.online.course.task2.repository;
2+
3+
import ru.izh.online.course.task2.entity.Author;
4+
import ru.izh.online.course.task2.entity.Book;
5+
6+
import java.util.Date;
7+
8+
import static java.time.LocalDate.of;
9+
10+
/**
11+
* Репозиторий книг. Имеет внутри себя массив книг и методы для работы с ним. ID генерируется методом getNextId
12+
*/
13+
public class SimpleBookRepository implements BookRepository {
14+
15+
private static long bookIdHolder;
16+
17+
public static long getNextId() {
18+
return bookIdHolder++;
19+
}
20+
21+
private static final Author[] AUTHORS = {
22+
new Author(1, "Joshua Bloch"),
23+
new Author(2, "Doug Lea"),
24+
new Author(3, "Thomas H. Cormen"),
25+
26+
};
27+
28+
private Book[] books = {
29+
new Book(getNextId(), "Effective Java Programming", 412, AUTHORS[0], of(2018, 1 ,6)),
30+
new Book(getNextId(), "Java Concurrency in Practice", 432 , AUTHORS[1], of(2006, 5, 19)),
31+
new Book(getNextId(), "Concurrent Programming in Java: Design Principles and Patterns", 339 , AUTHORS[1], of(1997, 10, 25)),
32+
new Book(getNextId(), "Introduction to Algorithms", 1292 , AUTHORS[2], of(2009, 7, 31))
33+
};
34+
35+
@Override
36+
public boolean get(long id) {
37+
return false;
38+
}
39+
40+
@Override
41+
public boolean add(Book book) {
42+
return false;
43+
}
44+
45+
@Override
46+
public boolean remove(Book book) {
47+
return false;
48+
}
49+
50+
@Override
51+
public Book[] getAll(String authorName) {
52+
return new Book[0];
53+
}
54+
55+
@Override
56+
public Book[] getAll(Date publishDate) {
57+
return new Book[0];
58+
}
59+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package ru.izh.online.course.task2.service;
2+
3+
import ru.izh.online.course.task2.entity.Book;
4+
5+
import java.util.Date;
6+
7+
public interface BookService {
8+
9+
boolean get(long id);
10+
boolean add(Book book);
11+
boolean remove(Book book);
12+
Book[] getAll(String authorName);
13+
Book[] getAll(Date publishDate);
14+
15+
}

0 commit comments

Comments
 (0)