code: public boolean supports(final AbstractType<?> type) {
          AbstractType<?> checkedType = type;
          if (type.isCollection()) {
              if (type instanceof MapType<?, ?>) {
                  checkedType = ((MapType<?, ?>) type).getValuesType();
              } else if (type instanceof ListType<?>) {
                  checkedType = ((ListType<?>) type).getElementsType();
              } else if (type instanceof SetType) {
                  checkedType = ((SetType<?>) type).getElementsType();
              }
          }
  
          if (type instanceof ReversedType) {
              ReversedType reversedType = (ReversedType) type;
              checkedType = reversedType.baseType;
          }
  
          for (AbstractType<?> n : supportedTypes) {
              if (checkedType.getClass() == n.getClass()) {
                  return true;
              }
          }
          return false;
      }
docs: Returns {@code true} if the specified Cassandra type/marshaller is supported, {@code false} otherwise.
  
  @param type A Cassandra type/marshaller.
  @return {@code true} if the specified Cassandra type/marshaller is supported, {@code false} otherwise.