code: private void checkTypeDepth(Feature feature, Class<?> current)
      {
          for (final Class<?> type : current.getInterfaces())
          {
              if (type.isAnnotationPresent(FeatureInterface.class))
              {
                  final Feature old;
                  // CHECKSTYLE IGNORE LINE: InnerAssignment
                  if ((old = typeToFeature.put(type.asSubclass(Feature.class), feature)) != null)
                  {
                      throw new LionEngineException(ERROR_FEATURE_EXISTS
                                                    + feature.getClass()
                                                    + AS
                                                    + type
                                                    + WITH
                                                    + old.getClass());
                  }
                  checkTypeDepth(feature, type);
              }
          }
          final Class<?> parent = current.getSuperclass();
          if (parent != null)
          {
              checkTypeDepth(feature, parent);
          }
      }
docs: Check annotated features parent recursively.
  
  @param feature The main feature.
  @param current The current parent.