UNPKG

@microsoft.azure/autorest.incubator

Version:
56 lines 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const initializer_1 = require("../../common/initializer"); const expression_1 = require("../../csharp/code-dom/expression"); const statement_1 = require("../../csharp/code-dom/statements/statement"); /** represents a locally declared variable */ class LocalVariable extends initializer_1.Initializer { constructor(name, type, objectIntializer) { super(); this.name = name; this.type = type; this.apply(objectIntializer); } get value() { return `${this.name}`; } get implementation() { return this.declarationStatement.implementation; } get declarationStatement() { return statement_1.toStatement(`${this.declarationExpression};`); } get declarationExpression() { return expression_1.toExpression(`${this.type.declaration} ${this.name}${this.initializer ? ` = ${expression_1.valueOf(this.initializer)}` : ''}`); } assign(expression) { return `${this.name} = ${expression_1.valueOf(expression)};`; } assignPrivate(expression) { return this.assign(expression); } toString() { return expression_1.valueOf(this); } invokeMethod(methodName, ...parameters) { const e = `${expression_1.valueOf(this)}.${methodName}(${parameters.joinWith(expression_1.valueOf)})`; return { implementation: `${e};`, value: e, }; } member(memberName) { return new MemberVariable(this, memberName); } } exports.LocalVariable = LocalVariable; class MemberVariable extends LocalVariable { constructor(variable, memberName, objectIntializer) { super(`${variable}.${memberName}`, { declaration: 'var' }); this.variable = variable; this.memberName = memberName; this.apply(objectIntializer); } } exports.MemberVariable = MemberVariable; //# sourceMappingURL=variable.js.map