code: package io.ray.api.function;
  
  /**
   * A class that represents a Python actor class.
   *
   * <pre>
   * example_package/
   * ├──__init__.py
   * └──example_module.py
   *
   * in example_module.py there is an actor class A.
   *
   * \@ray.remote
   * class A(object):
   *     def __init__(self, x):
   *         self.x = x
   *
   * we can create this Python actor from Java:
   *
   * {@code
   * PyActorHandle actor = Ray.createActor(PyActorClass.of("example_package.example_module", "A"),
   *                                    "the value for x");
   * }
   * </pre>
   */
  public class PyActorClass {
    // The full module name of this actor class
    public final String moduleName;
    // The name of this actor class
    public final String className;
  
    private PyActorClass(String moduleName, String className) {
      this.moduleName = moduleName;
      this.className = className;
    }
  
    /**
     * Create a python actor class.
     *
     * @param moduleName The full module name of this actor class
     * @param className The name of this actor class
     * @return a python actor class
     */
    public static PyActorClass of(String moduleName, String className) {
      return new PyActorClass(moduleName, className);
    }
  }
  