public boolean isHigherThan(Component.Type otherType) {
    if (otherType.isViewsType()) {
      return this.viewsMaxDepth != null && this.viewsMaxDepth.isHigherThan(otherType);
    }
    if (otherType.isReportType()) {
      return this.reportMaxDepth != null && this.reportMaxDepth.isHigherThan(otherType);
    }
    throw new UnsupportedOperationException(UNSUPPORTED_TYPE_UOE_MSG);
  }
@Test
  public void PROJECT_isHigher_than_all_report_types_but_PROJECT() {
    assertThat(CrawlerDepthLimit.PROJECT.isHigherThan(Type.PROJECT)).isFalse();
    for (Type reportType : from(REPORT_TYPES).filter(not(equalTo(Type.PROJECT)))) {
      assertThat(CrawlerDepthLimit.PROJECT.isHigherThan(reportType)).as("isHigherThan(%s)", reportType).isTrue();
    }
  }