"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetRequest = void 0;
const MultiResponseServiceRequest_1 = require("./MultiResponseServiceRequest");
/** @internal */
class GetRequest extends MultiResponseServiceRequest_1.MultiResponseServiceRequest {
    //private propertySet: PropertySet;
    constructor(service, errorHandlingMode) {
        super(service, errorHandlingMode);
    }
    //abstract - AddIdsToRequest(jsonRequest: JsonObject, service: ExchangeService): any { throw new Error("GetRequest.ts - abstract - AddIdsToRequest : Not implemented."); }
    //IJsonSerializable.ToJson(ExchangeService service): any {
    //    JsonObject jsonRequest = new JsonObject();
    //    this.propertySet.WriteGetShapeToJson(jsonRequest, service, this.GetServiceObjectType());
    //    this.AddIdsToRequest(jsonRequest, service);
    //    return jsonRequest;
    //}
    GetServiceObjectType() { throw new Error("Abstract; must implemented."); }
    Validate() {
        super.Validate();
        //EwsUtilities.ValidateParam(this.PropertySet, "PropertySet");
        this.PropertySet.ValidateForRequest(this, false /*summaryPropertiesOnly*/);
    }
    /**@internal */
    WriteElementsToXml(writer) { this.PropertySet.WriteToXml(writer, this.GetServiceObjectType()); }
}
exports.GetRequest = GetRequest;
//# sourceMappingURL=GetRequest.js.map