class DotnetClassConstant extends ClassConstant {

  private DotnetClassConstant(String s) {
    super(convertDotnetClassToJvmDescriptor(s));
  }

  /**
   * Convert Dotnet Class to Java Descriptor https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.3
   *
   * @param s
   *          class to convert
   * @return converted to descriptor
   */
  private static String convertDotnetClassToJvmDescriptor(String s) {<FILL_FUNCTION_BODY>}

  public static DotnetClassConstant v(String value) {
    return new DotnetClassConstant(value);
  }

  // In this case, equals should be structural equality.
  @Override
  public boolean equals(Object c) {
    return (c instanceof ClassConstant && ((ClassConstant) c).value.equals(this.value));
  }
}

    try {
      return "L" + s.replace(".", "/").replace("+", "$") + ";";
    } catch (Exception e) {
      throw new RuntimeException("Cannot convert Dotnet class \"" + s + "\" to JVM Descriptor: " + e);
    }
  
<methods>public void apply(soot.util.Switch) ,public boolean equals(java.lang.Object) ,public static soot.jimple.ClassConstant fromType(soot.Type) ,public soot.Type getType() ,public java.lang.String getValue() ,public int hashCode() ,public boolean isRefType() ,public java.lang.String toInternalString() ,public soot.Type toSootType() ,public java.lang.String toString() ,public static soot.jimple.ClassConstant v(java.lang.String) <variables>public final non-sealed java.lang.String value