export class DisplaySupportVO {
    isSupportMirrorToDisplay: boolean;
    isSupportMirrorToController: boolean;
    isSupportDisplayRemote: boolean;
    isSupportDisplayScreenCapture: boolean;
    isSupportDisplayAppInstall: boolean;
    isSupportShareImageToDisplay: boolean;
    isSupportShareVideoToDisplay: boolean;
    isSupportShareDocumentToDisplay: boolean;
    majorVersion: number;
    minorVersion: number;

    constructor() {
        this.isSupportMirrorToDisplay = false;
        this.isSupportMirrorToController = true;
        this.isSupportDisplayRemote = false;
        this.isSupportDisplayScreenCapture = false;
        this.isSupportDisplayAppInstall = false;
        this.isSupportShareImageToDisplay = false;
        this.isSupportShareVideoToDisplay = false;
        this.isSupportShareDocumentToDisplay = true;
        this.majorVersion = 9;
        this.minorVersion = 3;
    }

    equals(o: any): boolean {
        return o instanceof DisplaySupportVO &&
        this.isSupportMirrorToDisplay === o.isSupportMirrorToDisplay &&
        this.isSupportMirrorToController === o.isSupportMirrorToController &&
        this.isSupportDisplayRemote === o.isSupportDisplayRemote &&
        this.isSupportDisplayScreenCapture === o.isSupportDisplayScreenCapture &&
        this.isSupportDisplayAppInstall === o.isSupportDisplayAppInstall &&
        this.isSupportShareImageToDisplay === o.isSupportShareImageToDisplay &&
        this.isSupportShareVideoToDisplay === o.isSupportShareVideoToDisplay &&
        this.isSupportShareDocumentToDisplay === o.isSupportShareDocumentToDisplay &&
        this.majorVersion === o.majorVersion &&
        this.minorVersion === o.minorVersion;
    }

    toString(): string {
        return `DisplaySupportVO{` +
          `isSupportMirrorToDisplay=${this.isSupportMirrorToDisplay}, ` +
          `isSupportMirrorToController=${this.isSupportMirrorToController}, ` +
          `isSupportDisplayRemote=${this.isSupportDisplayRemote}, ` +
          `isSupportDisplayScreenCapture=${this.isSupportDisplayScreenCapture}, ` +
          `isSupportDisplayAppInstall=${this.isSupportDisplayAppInstall}, ` +
          `isSupportShareImageToDisplay=${this.isSupportShareImageToDisplay}, ` +
          `isSupportShareVideoToDisplay=${this.isSupportShareVideoToDisplay}, ` +
          `isSupportShareDocumentToDisplay=${this.isSupportShareDocumentToDisplay}, ` +
          `majorVersion=${this.majorVersion}, ` +
          `minorVersion=${this.minorVersion}` +
          `}`;
    }

    static copy(vo: DisplaySupportVO): DisplaySupportVO {
        let support = new DisplaySupportVO();
        support.isSupportMirrorToDisplay = vo.isSupportMirrorToDisplay;
        support.isSupportMirrorToController = vo.isSupportMirrorToController;
        support.isSupportDisplayRemote = vo.isSupportDisplayRemote;
        support.isSupportDisplayScreenCapture = vo.isSupportDisplayScreenCapture;
        support.isSupportDisplayAppInstall = vo.isSupportDisplayAppInstall;
        support.isSupportShareImageToDisplay = vo.isSupportShareImageToDisplay;
        support.isSupportShareVideoToDisplay = vo.isSupportShareVideoToDisplay;
        support.isSupportShareDocumentToDisplay = vo.isSupportShareDocumentToDisplay;
        support.majorVersion = vo.majorVersion;
        support.minorVersion = vo.minorVersion;
        return support;
    }
}