code: private void initializeMappingTable() {
          for (TaskBase taskClassObject : taskClassObjects) {
              Class<? extends TaskBase> claz = taskClassObject.getClass();
              for (Method method : claz.getDeclaredMethods()) {
                  for (Annotation annotation : method.getAnnotations()) {
                      if (annotation instanceof Task) {
                          String methodName = ((Task) annotation).name();
                          String methodVersion = ((Task) annotation).version();
                          String key = getKey(methodName, methodVersion);
                          if (!methodMap.containsKey(key)) {
                              methodMap.put(key, method);
                              objectMap.put(key, taskClassObject);
                          } else {
                              // duplicate name--version pair
                              throw new DuplicateTaskAnnotationException(methodName, methodVersion);
                          }
                      }
                  }
              }
          }
      }
docs: Creates the table mapping method names and versions to Method objects and corresponding TaskBase objects