diff --git a/is_prime b/01_primes/is_prime similarity index 100% rename from is_prime rename to 01_primes/is_prime diff --git a/readme.md b/01_primes/readme.md similarity index 100% rename from readme.md rename to 01_primes/readme.md diff --git a/02_MailClient/MailClient.iml b/02_MailClient/MailClient.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/02_MailClient/MailClient.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/02_MailClient/src/Main.java b/02_MailClient/src/Main.java new file mode 100644 index 0000000..f1f2792 --- /dev/null +++ b/02_MailClient/src/Main.java @@ -0,0 +1,6 @@ +public class Main { + public static void main(String[] args) { + + System.out.println("Hello world!"); + } +} \ No newline at end of file diff --git a/02_MailClient/src/net/hypki/mailclient/db/Db.java b/02_MailClient/src/net/hypki/mailclient/db/Db.java new file mode 100644 index 0000000..68402c4 --- /dev/null +++ b/02_MailClient/src/net/hypki/mailclient/db/Db.java @@ -0,0 +1,8 @@ +package net.hypki.mailclient.db; + +import java.io.IOException; + +public interface Db { + public void save(String key, Object value) throws IOException; + public Object get(String key); +} diff --git a/02_MailClient/src/net/hypki/mailclient/db/sql/MySQLDB.java b/02_MailClient/src/net/hypki/mailclient/db/sql/MySQLDB.java new file mode 100644 index 0000000..88daa0b --- /dev/null +++ b/02_MailClient/src/net/hypki/mailclient/db/sql/MySQLDB.java @@ -0,0 +1,22 @@ +package net.hypki.mailclient.db.sql; + +import net.hypki.mailclient.db.Db; + +import java.io.IOException; + +public class MySQLDB implements Db { + @Override + public void save(String key, Object value) throws IOException { + // 1. opening a client to a real databse + // 2. put object to real database + // 3. check for errors + } + + @Override + public Object get(String key) { + // 1. open a client to a database + // 2. return data from DB + // 3. convert to Object and return it + return null; + } +} diff --git a/02_MailClient/src/net/hypki/mailclient/model/Mail.java b/02_MailClient/src/net/hypki/mailclient/model/Mail.java new file mode 100644 index 0000000..388a518 --- /dev/null +++ b/02_MailClient/src/net/hypki/mailclient/model/Mail.java @@ -0,0 +1,57 @@ +package net.hypki.mailclient.model; + +import java.io.IOException; + +public class Mail extends ModelObject { + private String id = null; + private String title = null; + private String from = null; + private String to = null; + + public Mail() { + + } + + @Override + public void validate() throws IOException, IllegalArgumentException { + // if `to` mail is incorrect then throw exception + if (!to.contains("@")) + throw new IOException("bbbbbb"); + } + + public String getTitle() { + // additions + // someFunction() + + return title; + } + + public void setTitle(String newTitle) { + + this.title = newTitle; + } + + public String getFrom() { + return from; + } + + public void setFrom(String from) { + this.from = from; + } + + public String getTo() { + return to; + } + + public void setTo(String to) { + this.to = to; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } +} diff --git a/02_MailClient/src/net/hypki/mailclient/model/ModelObject.java b/02_MailClient/src/net/hypki/mailclient/model/ModelObject.java new file mode 100644 index 0000000..2baa78c --- /dev/null +++ b/02_MailClient/src/net/hypki/mailclient/model/ModelObject.java @@ -0,0 +1,7 @@ +package net.hypki.mailclient.model; + +import java.io.IOException; + +public abstract class ModelObject { + public abstract void validate() throws IOException, IllegalArgumentException; +} diff --git a/02_MailClient/src/net/hypki/mailclient/model/User.java b/02_MailClient/src/net/hypki/mailclient/model/User.java new file mode 100644 index 0000000..a696d57 --- /dev/null +++ b/02_MailClient/src/net/hypki/mailclient/model/User.java @@ -0,0 +1,36 @@ +package net.hypki.mailclient.model; + +import java.io.IOException; + +public class User extends ModelObject { + private String email = null; + + private String name = null; + + public User() { + + } + + @Override + public void validate() throws IOException, IllegalArgumentException { + // if `to` mail is incorrect then throw exception + if (!email.contains("@")) + throw new IOException("bbbbbb"); + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/02_MailClient/src/net/hypki/mailclient/view/MainUI.java b/02_MailClient/src/net/hypki/mailclient/view/MainUI.java new file mode 100644 index 0000000..7e13c03 --- /dev/null +++ b/02_MailClient/src/net/hypki/mailclient/view/MainUI.java @@ -0,0 +1,27 @@ +package net.hypki.mailclient.view; + +import net.hypki.mailclient.db.Db; +import net.hypki.mailclient.db.sql.MySQLDB; +import net.hypki.mailclient.model.Mail; + +import javax.activation.MailcapCommandMap; + +public class MainUI { + + private Db database = null; + + public MainUI() { + database = new MySQLDB(); + } + + public void showMainDialog() { + // show UI + + while (true) { + // check evey 5 mins for new mails + + Mail newMail = new Mail(); + database.save(newMail.getId(), newMail); + } + } +}