content: /*
   * Decompiled with CFR 0.153-SNAPSHOT (d6f6758-dirty).
   */
  package kotlin.jvm.internal;
  
  import java.util.List;
  import kotlin.SinceKotlin;
  import kotlin.jvm.internal.ClassReference;
  import kotlin.jvm.internal.FunctionBase;
  import kotlin.jvm.internal.FunctionReference;
  import kotlin.jvm.internal.Lambda;
  import kotlin.jvm.internal.MutablePropertyReference0;
  import kotlin.jvm.internal.MutablePropertyReference1;
  import kotlin.jvm.internal.MutablePropertyReference2;
  import kotlin.jvm.internal.PackageReference;
  import kotlin.jvm.internal.PropertyReference0;
  import kotlin.jvm.internal.PropertyReference1;
  import kotlin.jvm.internal.PropertyReference2;
  import kotlin.jvm.internal.TypeParameterReference;
  import kotlin.jvm.internal.TypeReference;
  import kotlin.reflect.KClass;
  import kotlin.reflect.KClassifier;
  import kotlin.reflect.KDeclarationContainer;
  import kotlin.reflect.KFunction;
  import kotlin.reflect.KMutableProperty0;
  import kotlin.reflect.KMutableProperty1;
  import kotlin.reflect.KMutableProperty2;
  import kotlin.reflect.KProperty0;
  import kotlin.reflect.KProperty1;
  import kotlin.reflect.KProperty2;
  import kotlin.reflect.KType;
  import kotlin.reflect.KTypeParameter;
  import kotlin.reflect.KTypeProjection;
  import kotlin.reflect.KVariance;
  
  public class ReflectionFactory {
      private static final String KOTLIN_JVM_FUNCTIONS = "kotlin.jvm.functions.";
  
      public KClass createKotlinClass(Class javaClass) {
          return new ClassReference(javaClass);
      }
  
      public KClass createKotlinClass(Class javaClass, String internalName) {
          return new ClassReference(javaClass);
      }
  
      public KDeclarationContainer getOrCreateKotlinPackage(Class javaClass, String moduleName) {
          return new PackageReference(javaClass, moduleName);
      }
  
      public KClass getOrCreateKotlinClass(Class javaClass) {
          return new ClassReference(javaClass);
      }
  
      public KClass getOrCreateKotlinClass(Class javaClass, String internalName) {
          return new ClassReference(javaClass);
      }
  
      @SinceKotlin(version="1.1")
      public String renderLambdaToString(Lambda lambda2) {
          return this.renderLambdaToString((FunctionBase)lambda2);
      }
  
      @SinceKotlin(version="1.3")
      public String renderLambdaToString(FunctionBase lambda2) {
          String result = lambda2.getClass().getGenericInterfaces()[0].toString();
          return result.startsWith(KOTLIN_JVM_FUNCTIONS) ? result.substring(KOTLIN_JVM_FUNCTIONS.length()) : result;
      }
  
      public KFunction function(FunctionReference f) {
          return f;
      }
  
      public KProperty0 property0(PropertyReference0 p) {
          return p;
      }
  
      public KMutableProperty0 mutableProperty0(MutablePropertyReference0 p) {
          return p;
      }
  
      public KProperty1 property1(PropertyReference1 p) {
          return p;
      }
  
      public KMutableProperty1 mutableProperty1(MutablePropertyReference1 p) {
          return p;
      }
  
      public KProperty2 property2(PropertyReference2 p) {
          return p;
      }
  
      public KMutableProperty2 mutableProperty2(MutablePropertyReference2 p) {
          return p;
      }
  
      @SinceKotlin(version="1.4")
      public KType typeOf(KClassifier klass, List<KTypeProjection> arguments, boolean isMarkedNullable) {
          return new TypeReference(klass, arguments, isMarkedNullable);
      }
  
      @SinceKotlin(version="1.4")
      public KTypeParameter typeParameter(Object container, String name, KVariance variance, boolean isReified) {
          return new TypeParameterReference(container, name, variance, isReified);
      }
  
      @SinceKotlin(version="1.4")
      public void setUpperBounds(KTypeParameter typeParameter, List<KType> bounds) {
          ((TypeParameterReference)typeParameter).setUpperBounds(bounds);
      }
  }
  
  