class MacWindow implements OsWindow {
    private long number;
    private String title;
    private long pid;
    private Rectangle bounds;

    public MacWindow(long number, String title, long pid, Rectangle bounds) {
      this.number = number;
      this.title = title;
      this.pid = pid;
      this.bounds = bounds;
    }

    @Override
    public OsProcess getProcess() {<FILL_FUNCTION_BODY>}

    @Override
    public String getTitle() {
      return title;
    }

    @Override
    public Rectangle getBounds() {
      return bounds;
    }

    @Override
    public boolean focus() {
      NSRunningApplication app = NSRunningApplication.CLASS.runningApplicationWithProcessIdentifier((int) pid);

      if (app != null) {
        return app.activateWithOptions(NSRunningApplication.NSApplicationActivationOptions.NSApplicationActivateAllWindows | NSRunningApplication.NSApplicationActivationOptions.NSApplicationActivateIgnoringOtherApps);
      }

      return false;
    }

    @Override
    public boolean minimize() {
      throw new UnsupportedOperationException("minimize not implemented");
    }

    @Override
    public boolean maximize() {
      throw new UnsupportedOperationException("maximize not implemented");
    }

    @Override
    public boolean restore() {
      throw new UnsupportedOperationException("restore not implemented");
    }

    @Override
    public boolean equals(Object other) {
      return other != null && other instanceof MacWindow && this.number == (((MacWindow) other).number);
    }
  }

      Optional<ProcessHandle> handle = ProcessHandle.of(pid);
      if (handle.isPresent()) {
        return new GenericOsProcess(handle.get());
      }
      return null;
    
<methods>public non-sealed void <init>() ,public List<org.sikuli.natives.OSUtil.OsProcess> findProcesses(java.lang.String) ,public List<org.sikuli.natives.OSUtil.OsWindow> findWindows(java.lang.String) ,public org.sikuli.natives.OSUtil.OsWindow getFocusedWindow() ,public org.sikuli.natives.OSUtil.OsProcess getProcess() ,public List<org.sikuli.natives.OSUtil.OsProcess> getProcesses() ,public List<org.sikuli.natives.OSUtil.OsWindow> getWindows(org.sikuli.natives.OSUtil.OsProcess) ,public List<org.sikuli.natives.OSUtil.OsWindow> getWindows() ,public void init() ,public boolean isUserProcess(org.sikuli.natives.OSUtil.OsProcess) ,public org.sikuli.natives.OSUtil.OsProcess open(java.lang.String[], java.lang.String) <variables>