@microsoft.azure/autorest.incubator
Version:
AutoRest incubator project
84 lines • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const text_manipulation_1 = require("../../../common/text-manipulation");
const statement_1 = require("../../../csharp/code-dom/statements/statement");
// gs01: fix this -- value should be an expresion.
function Case(value, body, objectInitializer) {
return new CaseStatement(value, body, objectInitializer);
}
exports.Case = Case;
class CaseStatement extends statement_1.Statements {
constructor(value, body, objectInitializer) {
super(body);
this.value = value;
this.apply(objectInitializer);
}
get statementsImplementation() {
return text_manipulation_1.indent(super.implementation);
}
get implementation() {
return `
case ${this.value}:
{
${this.statementsImplementation}
${text_manipulation_1.indent('break')};
}`.trim();
}
}
exports.CaseStatement = CaseStatement;
function DefaultCase(body, objectInitializer) {
return new DefaultCaseStatement(body, objectInitializer);
}
exports.DefaultCase = DefaultCase;
class DefaultCaseStatement extends CaseStatement {
constructor(body, objectInitializer) {
super("", body);
this.apply(objectInitializer);
}
get implementation() {
return `
default:
{
${this.statementsImplementation}
${text_manipulation_1.indent('break')};
}`.trim();
}
}
exports.DefaultCaseStatement = DefaultCaseStatement;
function TerminalDefaultCase(body, objectInitializer) {
return new TerminalDefaultCaseStatement(body, objectInitializer);
}
exports.TerminalDefaultCase = TerminalDefaultCase;
class TerminalDefaultCaseStatement extends CaseStatement {
constructor(body, objectInitializer) {
super("", body);
this.apply(objectInitializer);
}
get implementation() {
return `
default:
{
${this.statementsImplementation}
}`.trim();
}
}
exports.TerminalDefaultCaseStatement = TerminalDefaultCaseStatement;
function TerminalCase(value, body, objectInitializer) {
return new TerminalCaseStatement(value, body, objectInitializer);
}
exports.TerminalCase = TerminalCase;
class TerminalCaseStatement extends CaseStatement {
constructor(value, body, objectInitializer) {
super(value, body);
this.apply(objectInitializer);
}
get implementation() {
return `
case ${this.value}:
{
${this.statementsImplementation}
}`.trim();
}
}
exports.TerminalCaseStatement = TerminalCaseStatement;
//# sourceMappingURL=case.js.map