var __extends = this.__extends || function (d, b) {
    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
    function __() { this.constructor = d; }
    __.prototype = b.prototype;
    d.prototype = new __();
};
// Modul
var DemoKunden;
(function (DemoKunden) {
    var GO;
    (function (GO) {
        /** Kontakt mit ID, Name, Ort, PLZ
        * @autor Dr. Holger Schwichtenberg
        */
        var Kontakt = (function () {
            /**
            * @param id Kundenummer
            * @param name Kundenname
            * @param ort Kundenwohnort
            */
            function Kontakt(
                /**
                Kundennummer
                */
                id, 
                /**
                Kundenname
                */
                name, 
                /**
                Kundenort
                */
                ort) {
                if (ort === void 0) { ort = "unbekannt"; }
                this.id = id;
                this.name = name;
                this.ort = ort;
                this.erfassungsdatum = new Date();
                this.id = id; // Diese Zeile ist ueberfluessig !!!
                if (Kunde.alleKontakte == null)
                    Kunde.alleKontakte = new Array();
                Kunde.alleKontakte.push(this);
            }
            Object.defineProperty(Kontakt.prototype, "erfassungsdatum", {
                get: function () {
                    return this._erfassungsdatum;
                },
                set: function (erfassungsdatum) {
                    this._erfassungsdatum = erfassungsdatum;
                },
                enumerable: true,
                configurable: true
            });
            /**
            * Liefert Name, optional mit Ort
            * @param mitOrt Soll der Ort mitgeliefert werden?
            * @param trenner Trennzeichen zwischen Name und Ort
            */
            Kontakt.prototype.getGanzerName = function (mitOrt, trenner) {
                if (!mitOrt)
                    return this.name;
                return this.name + trenner + this.ort;
            };
            // Privates Instanzmitgled
            Kontakt.prototype.getErfassungsdatum = function () {
                return this.erfassungsdatum;
            };
            // Oeffentliches Instanzmitgled
            Kontakt.prototype.getInfo = function () { return "Kontakt " + this.getBasisInfo(); };
            // Oeffentliches Instanzmitgled
            Kontakt.prototype.getBasisInfo = function () {
                return this.id + ": " + this.name + " in " + this.ort + " - erfasst am " + this.getErfassungsdatum();
            };
            return Kontakt;
        })();
        GO.Kontakt = Kontakt;
        var Kunde = (function (_super) {
            __extends(Kunde, _super);
            function Kunde() {
                _super.apply(this, arguments);
            }
            //constructor()
            //{
            //    super(0, "");
            //}
            // Instanzmitgled
            Kunde.prototype.getInfo = function () { return "Kunde " + _super.prototype.getBasisInfo.call(this) + "Test: " + this.erfassungsdatum; };
            return Kunde;
        })(Kontakt);
        GO.Kunde = Kunde;
        function test() {
            //
            var meier = new GO.Kunde(1, "Meier", "Berlin");
            meier.getGanzerName(false);
        }
    })(GO = DemoKunden.GO || (DemoKunden.GO = {}));
})(DemoKunden || (DemoKunden = {}));
//# sourceMappingURL=GO.Kunde.js.map