public static EnumTargetTask getEnumByValue(String value) {
   EnumTargetTask[] enums = EnumTargetTask.values();
   int enumsNumber = enums.length;
   for (int i = 0; i < enumsNumber; i++) {
     EnumTargetTask type = enums[i];
     if (value.equals(type.getValue())) {
       return type;
     }
   }
   return UNKNOWN;
 }
  public boolean isIn(EnumTargetTask dir) {
    EnumTargetTask current = EnumTargetTask.getEnumByValue(this.value);

    while (!current.getValue().equals(current.getDir())) {
      if (current == dir) {
        return true;
      } else {
        current = EnumTargetTask.getEnumByDir(current.getDir());
      }
    }
    if (current == dir) {
      return true;
    }
    return false;
  }