about summary refs log tree commit diff
path: root/usth/ICT2.2/labwork/3/Java/NameCard.java
diff options
context:
space:
mode:
authorNguyễn Gia Phong <vn.mcsinyx@gmail.com>2019-12-15 10:34:58 +0700
committerNguyễn Gia Phong <vn.mcsinyx@gmail.com>2019-12-15 15:00:00 +0700
commit67393f42f41ab92219deb549f711121c4dab845b (patch)
treeebd0eb6c8a3d3bd69937312179aeaf273ea29c80 /usth/ICT2.2/labwork/3/Java/NameCard.java
parentb38d9929f7a015b56b847fde7e83f814f354497e (diff)
downloadcp-67393f42f41ab92219deb549f711121c4dab845b.tar.gz
[usth/ICT2.2] Object Oriented Programming
Diffstat (limited to 'usth/ICT2.2/labwork/3/Java/NameCard.java')
-rw-r--r--usth/ICT2.2/labwork/3/Java/NameCard.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/usth/ICT2.2/labwork/3/Java/NameCard.java b/usth/ICT2.2/labwork/3/Java/NameCard.java
new file mode 100644
index 0000000..165d5f9
--- /dev/null
+++ b/usth/ICT2.2/labwork/3/Java/NameCard.java
@@ -0,0 +1,67 @@
+import java.util.regex.Pattern;
+
+public class NameCard
+{
+  private static final Pattern namePattern = Pattern.compile("[ A-Za-z]+");
+  private static final Pattern phonePattern = Pattern.compile("[-0-9]*");
+  // I have not learnt regex properly
+  private static final Pattern emailPattern = Pattern.compile(
+    "(\\w+)(\\.|_)?(\\w*)@(\\w+)(\\.(\\w+))+");
+
+  private String name;
+  private String phone;
+  private String email;
+
+  public String getName()
+  {
+    return name;
+  }
+
+  public String getPhone()
+  {
+    return phone;
+  }
+
+  public String getEmail()
+  {
+    return email;
+  }
+
+  public void setName(String name)
+  {
+    if (!namePattern.matcher(name).matches())
+      throw new IllegalArgumentException("invalid name: " + name);
+    this.name = name;
+  }
+
+  public void setPhone(String phone)
+  {
+    if (!phonePattern.matcher(phone).matches())
+      throw new IllegalArgumentException("invalid phone number: " + phone);
+    this.phone = phone;
+  }
+
+  public void setEmail(String email)
+  {
+    if (!emailPattern.matcher(email).matches())
+      throw new IllegalArgumentException("invalid email: " + email);
+    this.email = email;
+  }
+
+  public NameCard(String name)
+  {
+    this(name, "", "");
+  }
+
+  public NameCard(String name, String phone)
+  {
+    this(name, phone, "");
+  }
+
+  public NameCard(String name, String phone, String email)
+  {
+    setName(name);
+    setPhone(phone);
+    setEmail(email);
+  }
+}