code: public static List<AbstractType<?>> split(AbstractType<?> type) {
          if (type instanceof CompositeType) {
              return type.getComponents();
          } else {
              List<AbstractType<?>> result = new ArrayList<>(1);
              result.add(type);
              return result;
          }
      }
docs: Returns the {@link AbstractType}s contained in {@code type}.
  
  @param type the {@link AbstractType} to be split.
  @return the {@link AbstractType}s contained in {@code type}.