Code:

package chobit;

import java.util.ArrayList;

public class APImprintMaster extends AbsAlgPart {
   // todo : handle inputs regexes
   ArrayList<String> form = new ArrayList<>();
   int mode = 0;
   int index = 0;
   String input = "";
   Boolean isCompleted = false;
   String curResult = "";
   Person master;

   public APImprintMaster(Person master) {
      super();
      form.add("nice to meet you, and what would your name be");
      form.add("are you my master");
      form.add("I will input your name");
      form.add("what is your skill");
      form.add("what is your profession");
      form.add("what is your phone number");
      form.add("what is your email address");
      form.add("which is your favorite jutsu");
      form.add("soul spark engaged");
      this.master = master;
   }

   public void AddToform(String... strs) {
      for (String i : strs) {
         //
      }
   }

   @Override
   public String action(String ear, String skin, String eye) {
      String result = "";
      switch (mode) {
      case 0:
         result = form.get(index);
         curResult = result;
         if (result.contains("what") || result.contains("which is") || result.contains("please")
               || result.contains("are you")) {
            mode = 2;
         }
         else {
            index++;
         }
         break;
      case 2:
         if (!ear.isEmpty()) {
            mode = 3;
            input = ear;
         }
         if (form.get(index).contains("are you")) {
            mode = 4;
            input = ear;
         }
         break;
      case 3:
         result = input + " yes";
         mode = 4;
         break;
      case 4:
         if (ear.contains("yes")) {
            mode = 0;
            imprint();
            index++;
         }
         if (ear.contains("no")) {
            mode = 0;
         }
         break;
      default:
         break;
      }
      if (index == form.size()) {
         isCompleted = true;
         index--;
      }
      return result;
   }

   public void imprint() {
      switch (curResult) {
      case "nice to meet you, and what would your name be":
         master.setName(input);
         break;
      case "what is your skill":
         master.setSkill(input);
         break;
      case "what is your profession":
         master.setProfession(input);
         break;
      case "what is your phone number":
         master.setPhone(input);
         break;
      case "what is your email address":
         master.setEmail(input);
         break;
      case "which is your favorite jutsu":
         master.setJutsu(input);
         break;
      default:
         break;
      }
   }

   @Override
   public Boolean itemize() {
      // TODO Auto-generated method stub
      return false;
   }

   @Override
   public enumFail failure(String input) {
      // TODO Auto-generated method stub
      return enumFail.ok;
   }

   @Override
   public Boolean completed() {
      // TODO Auto-generated method stub
      return isCompleted;
   }

   @Override
   public AbsAlgPart clone() {
      // ***might glich, clone person ?
      return new APImprintMaster(this.master);
   }

}


:chii: