UNPKG

@vlocode/apex

Version:
62 lines 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FieldDeclarationVisitor = void 0; const types_1 = require("../types"); const declarationVisitor_1 = require("./declarationVisitor"); const typeRefVisitor_1 = require("./typeRefVisitor"); /** * Represents a visitor for field declarations in Apex. */ class FieldDeclarationVisitor extends declarationVisitor_1.DeclarationVisitor { constructor(state) { super(state ?? { name: '', type: { name: '', isSystemType: false, source: 'field' }, sourceRange: types_1.ApexSourceRange.empty, }); } visitModifier(ctx) { this.visitAccessModifier(ctx) || this.visitFieldModifiers(ctx); return this.state; } visitFieldModifiers(ctx) { if (ctx.STATIC()) { this.state.isStatic = true; } else if (ctx.FINAL()) { this.state.isFinal = true; } else if (ctx.TRANSIENT()) { this.state.isTransient = true; } else { return false; } return true; } visitVariableDeclarator(ctx) { const name = ctx.id().getText(); if (this.state.name) { if (!Array.isArray(this.state.name)) { this.state.name = [this.state.name, name]; } else { this.state.name.push(name); } } else { this.state.name = name; } return this.state; } visitTypeRef(ctx) { new typeRefVisitor_1.TypeRefVisitor(this.state.type).visit(ctx); return this.state; } } exports.FieldDeclarationVisitor = FieldDeclarationVisitor; //# sourceMappingURL=fieldDeclarationVisitor.js.map