import { Document } from '../models/Document'; import { ExtensibleNode } from '../models/ExtensibleNode'; import { Extension } from '../models/Extension'; import { IIndexedNode } from '../models/IIndexedNode'; import { IVisitable } from '../models/IVisitable'; import { Node } from '../models/Node'; import { ValidationProblem } from '../models/ValidationProblem'; import { Contact } from '../models/common/Contact'; import { ExternalDocumentation } from '../models/common/ExternalDocumentation'; import { IDefinition } from '../models/common/IDefinition'; import { Info } from '../models/common/Info'; import { License } from '../models/common/License'; import { OAuthFlow } from '../models/common/OAuthFlow'; import { OAuthFlows } from '../models/common/OAuthFlows'; import { Operation } from '../models/common/Operation'; import { Parameter } from '../models/common/Parameter'; import { Schema } from '../models/common/Schema'; import { SecurityRequirement } from '../models/common/SecurityRequirement'; import { SecurityScheme } from '../models/common/SecurityScheme'; import { Tag } from '../models/common/Tag'; /** * C'tor. * @param {*} visitor * @class * @author eric.wittmann@gmail.com */ export declare class Traverser implements ITraverser, IVisitor { visitor: IVisitor; constructor(visitor: IVisitor); /** * Traverse the items of the given array. * @param {Bound[]} items */ traverseCollection(items: Array): void; /** * Traverse the extension nodes, if any are found. * @param {ExtensibleNode} node */ traverseExtensions(node: ExtensibleNode): void; /** * Traverse all children of the indexed node. * @param {*} node */ traverseIndexedNode(node: IIndexedNode): void; /** * Traverse the validation problems, if any are found. * @param {Node} node */ traverseValidationProblems(node: Node): void; /** * Called to traverse the data model starting at the given node and traversing * down until this node and all child nodes have been visited. * @param {Node} node */ traverse(node: Node): void; /** * Traverse into the given node, unless it's null. * @param {*} node */ traverseIfNotNull(node: IVisitable): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitDocument(io.apicurio.datamodels.core.models.Document) * @param {Document} node */ visitDocument(node: Document): void; /** * Subclasses can override this to provide version-specific traversal of the root document. * @param {Document} node */ traverseDocument(node: Document): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitExtension(io.apicurio.datamodels.core.models.Extension) * @param {Extension} node */ visitExtension(node: Extension): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitValidationProblem(io.apicurio.datamodels.core.models.ValidationProblem) * @param {ValidationProblem} problem */ visitValidationProblem(problem: ValidationProblem): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitInfo(io.apicurio.datamodels.core.models.common.Info) * @param {Info} node */ visitInfo(node: Info): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitContact(io.apicurio.datamodels.core.models.common.Contact) * @param {Contact} node */ visitContact(node: Contact): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitLicense(io.apicurio.datamodels.core.models.common.License) * @param {License} node */ visitLicense(node: License): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitTag(io.apicurio.datamodels.core.models.common.Tag) * @param {Tag} node */ visitTag(node: Tag): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSecurityRequirement(io.apicurio.datamodels.core.models.common.SecurityRequirement) * @param {SecurityRequirement} node */ visitSecurityRequirement(node: SecurityRequirement): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitExternalDocumentation(io.apicurio.datamodels.core.models.common.ExternalDocumentation) * @param {ExternalDocumentation} node */ visitExternalDocumentation(node: ExternalDocumentation): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSchema(io.apicurio.datamodels.core.models.common.Schema) * @param {Schema} node */ visitSchema(node: Schema): void; traverseSchema(node: Schema): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitParameter(io.apicurio.datamodels.core.models.common.Parameter) * @param {Parameter} node */ visitParameter(node: Parameter): void; traverseParameter(node: Parameter): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitParameterDefinition(io.apicurio.datamodels.core.models.common.IDefinition) * @param {*} node */ visitParameterDefinition(node: IDefinition): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitOperation(io.apicurio.datamodels.core.models.common.Operation) * @param {Operation} node */ visitOperation(node: Operation): void; traverseOperation(node: Operation): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSecurityScheme(io.apicurio.datamodels.core.models.common.SecurityScheme) * @param {SecurityScheme} node */ visitSecurityScheme(node: SecurityScheme): void; traverseSecurityScheme(node: SecurityScheme): void; /** * @see io.apicurio.datamodels.core.visitors.IVisitor#visitSchemaDefinition(io.apicurio.datamodels.core.models.common.IDefinition) * @param {*} node */ visitSchemaDefinition(node: IDefinition): void; /** * Traverse an OAuth flow. * @param {OAuthFlow} node */ traverseOAuthFlow(node: OAuthFlow): void; /** * Traverses an oauth flows node. * @param {OAuthFlows} node */ traverseOAuthFlows(node: OAuthFlows): void; } import { IVisitor } from './IVisitor'; import { ITraverser } from './ITraverser';