Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions src/Design/Mailbox/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package Design.Mailbox;

public class Main {
public static void main(String[] args) {
System.out.println("Show All Messages");
SortCompareMethods.showAllMessages(SortCompareMethods.initMessageList());


System.out.println("Show by Tags");
SortCompareMethods.getAllMessagesByTag(SortCompareMethods.initMessageList(), "").forEach(System.out::println);


System.out.println("Show Messages From");
SortCompareMethods.getAllMessagesFrom(SortCompareMethods.initMessageList(), "ironmanspb@gmaill.com");


System.out.println("Show Messages To");
SortCompareMethods.getAllMessagesTo(SortCompareMethods.initMessageList(), "ironmanspb@gmaill.com");



}
}
57 changes: 57 additions & 0 deletions src/Design/Mailbox/Message.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package Design.Mailbox;

public class Message {

private final String from;
private final String to;
private final String content;
private Tags tags;
private Status status;


public Message(String from, String to, String content, Tags tags, Status status) {
this.from = from;
this.to = to;
this.content = content;
this.tags = tags;
this.status = status;
}

public String getFrom() {
return from;
}

public String getTo() {
return to;
}

public String getContent() {
return content;
}

public Tags getTags() {
return tags;
}

public Status getStatus() {
return status;
}

public void setTags(Tags tags) {
this.tags = tags;
}

public void setStatus(Status status) {
this.status = status;
}

@Override
public String toString() {
return "Message\n" +
" from: " + from + '\n' +
" to: " + to + "\n" +
" tags: " + tags + '\n' +
" status: " + status + "\n\n" +
" " + content + '\n';
}
}
66 changes: 66 additions & 0 deletions src/Design/Mailbox/SortCompareMethods.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package Design.Mailbox;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class SortCompareMethods {

public static List<Message> initMessageList() {
return Arrays.asList(
new Message(
"windows@engage.windows.com",
"sergeykovaltsov@gmail.com",
"Get up and running with your new PC....",
Tags.UNTAGGED,
Status.SENT),
new Message(
"noreply@stepik.org",
"sergeykovaltsov@gmail.com",
"Спасибо, что смотрите мои курсы по статистике!...",
Tags.MARKED,
Status.SENT),
new Message(
"notify@mail.notion.so",
"sergeykovaltsov@gmail.com",
"Click here to log in with this magic link...",
Tags.IMPORTANT,
Status.SENT),
new Message(
"no-reply@accounts.google.com",
"ironmanspb@gmail.com",
"Кто-то изменил пароль Вашего аккаунта Google...",
Tags.UNTAGGED,
Status.FAILED),
new Message(
"ironmanspb@gmail.com",
"sergeykovaltsov@gmail.com",
"Проверка...",
Tags.UNTAGGED,
Status.DRAFT)
);
}

public static List<Message> getAllMessagesFrom (List<Message> list, String sender) {
return list.stream()
.filter(p -> p.getFrom().equals(sender))
.collect(Collectors.toList());
}

public static List<Message> getAllMessagesTo(List<Message> list, String responder) {
return list.stream()
.filter(p -> p.getTo().equals(responder))
.collect(Collectors.toList());
}

public static void showAllMessages(List<Message> messages) {
messages.forEach(p -> System.out.println(p.toString()));
}

public static List<Message> getAllMessagesByTag(List<Message> list, String tag) {
return list.stream().filter(p -> p.getTags().getName().equals(tag)).collect(Collectors.toList());
}



}
20 changes: 20 additions & 0 deletions src/Design/Mailbox/Status.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package Design.Mailbox;

public enum Status {

SENT("sent"),
FAILED("failed"),
DRAFT("draft");

private String name;

public String getName() {
return name;
}

Status(String name) {
this.name = name;
}


}
21 changes: 21 additions & 0 deletions src/Design/Mailbox/Tags.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package Design.Mailbox;

public enum Tags {

IMPORTANT("important"),
MARKED("marked"),
UNTAGGED("");

private String name;

public String getName() {
return name;
}

Tags(String name) {
this.name = name;
}


}

48 changes: 48 additions & 0 deletions src/Design/Youtube/Channel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package Design.Youtube;

public class Channel {

private String nameChannel;
private boolean verified;
private int subscribers;
private boolean subscribed;

public Channel(String nameChannel, boolean verified, int subscribers, boolean subscribed) {
this.nameChannel = nameChannel;
this.verified = verified;
this.subscribers = subscribers;
this.subscribed = subscribed;
}

public String getNameChannel() {
return nameChannel;
}

public int getSubscribers() {
return subscribers;
}

public boolean isVerified() {
return verified;
}

public boolean isSubscribed() {
return subscribed;
}

public void switchVerified() {
this.verified = !verified;
}

public void setNameChannel(String nameChannel) {
this.nameChannel = nameChannel;
}

public void setSubscribers(int subscribers) {
this.subscribers = subscribers;
}

public void switchSubscribed() {
this.subscribed = !subscribed;
}
}
25 changes: 25 additions & 0 deletions src/Design/Youtube/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package Design.Youtube;


import java.util.Comparator;

public class Main {

public static void main(String[] args) {
System.out.println("Most liked 3 videos");
SortCompareMethods.getMostLikedNVideosWithLikes(SortCompareMethods.initVideoList(), 3).forEach(System.out::println);
System.out.println("The 5 newest videos");
SortCompareMethods.getTheNewestNVideosWithDate(SortCompareMethods.initVideoList(), 5).forEach(System.out::println);
System.out.println("The 7 most viewed videos");
SortCompareMethods.getTheMostViewedNVideosWithViews(SortCompareMethods.initVideoList(), 7).forEach(System.out::println);
System.out.println("Sort by views");
SortCompareMethods.sortByViews(SortCompareMethods.initVideoList()).forEach(System.out::println);
System.out.println("Sort by title");
SortCompareMethods.sortByTitle(SortCompareMethods.initVideoList()).forEach(System.out::println);
System.out.println("Channel and video Output");
SortCompareMethods.getChannelAndVideoStringList(SortCompareMethods.initVideoList()).forEach(System.out::println);
System.out.println("Sort by subscribers");
SortCompareMethods.sortVideosByChannelSubscribers(SortCompareMethods.initVideoList()).forEach(System.out::println);

}
}
Loading