"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var structureImpl = require("./structureImpl");
exports.parser = require("raml-1-parser");
var universes = exports.parser.universes;
var universeHelpers = exports.parser.universeHelpers;
var defaultInterfaces = require("./structureDefaultInterfaces");
var DefaultLabelProvider = (function () {
function DefaultLabelProvider() {
}
DefaultLabelProvider.prototype.getLabelText = function (node) {
Iif (node.isAttr()) {
var attr = node;
if (attr.value())
return attr.name() + ":" + attr.value();
}
else Iif (node.isUnknown()) {
return "Unknown";
}
var hlNode = node;
if (hlNode.definition().key() === universes.Universe08.DocumentationItem
|| hlNode.definition().key() === universes.Universe10.DocumentationItem) {
var titleAttribute = hlNode.attr("title");
Eif (titleAttribute) {
return titleAttribute.value();
}
}
Iif (!node.lowLevel())
return "";
return node.name();
};
DefaultLabelProvider.prototype.getTypeText = function (node) {
Iif (!node.isElement())
return null;
var hlNode = node;
var typeAttribute = hlNode.attr("type");
if (typeAttribute) {
var typeValue = typeAttribute.value();
Iif (typeValue == null) {
typeValue = "";
}
var typeText = "";
Iif (typeof typeValue === "object") {
typeText = ":" + typeValue.valueName();
}
else {
typeText = ":" + typeValue;
}
return typeText;
}
return null;
};
return DefaultLabelProvider;
}());
var DefaultDecorator = (function () {
function DefaultDecorator() {
this.decorations = {};
}
DefaultDecorator.prototype.addDecoration = function (nodeType, decoration) {
this.decorations[nodeType] = decoration;
};
DefaultDecorator.prototype.getNodeType = function (node) {
Iif (node.isAttr()) {
return defaultInterfaces.NodeType.ATTRIBUTE;
}
else Iif (node.isUnknown()) {
return defaultInterfaces.NodeType.UNKNOWN;
}
var hlNode = node;
var nodeDefinition = hlNode.definition().key();
if (nodeDefinition == universes.Universe08.Resource
|| nodeDefinition === universes.Universe10.Resource) {
return defaultInterfaces.NodeType.RESOURCE;
}
else if (nodeDefinition === universes.Universe08.Method
|| nodeDefinition === universes.Universe10.Method) {
return defaultInterfaces.NodeType.METHOD;
}
else if (nodeDefinition === universes.Universe08.AbstractSecurityScheme
|| nodeDefinition === universes.Universe10.AbstractSecurityScheme) {
return defaultInterfaces.NodeType.SECURITY_SCHEME;
}
else Iif (nodeDefinition == universes.Universe10.TypeDeclaration
&& universeHelpers.isAnnotationTypesProperty(node.property())) {
return defaultInterfaces.NodeType.ANNOTATION_DECLARATION;
}
else if (hlNode.definition().isAssignableFrom(universes.Universe10.TypeDeclaration.name) ||
hlNode.definition().isAssignableFrom(universes.Universe08.Parameter.name)) {
return defaultInterfaces.NodeType.TYPE_DECLARATION;
}
else if (nodeDefinition === universes.Universe08.DocumentationItem
|| nodeDefinition === universes.Universe10.DocumentationItem) {
return defaultInterfaces.NodeType.DOCUMENTATION_ITEM;
}
Iif (node.lowLevel().unit() != node.root().lowLevel().unit()) {
return defaultInterfaces.NodeType.EXTERNAL_UNIT;
}
return defaultInterfaces.NodeType.OTHER;
};
DefaultDecorator.prototype.getDecoration = function (node) {
var nodeType = this.getNodeType(node);
Iif (!nodeType)
return null;
return this.decorations[nodeType];
};
DefaultDecorator.prototype.getIcon = function (node) {
var decoration = this.getDecoration(node);
if (!decoration)
return null;
return decoration.icon;
};
DefaultDecorator.prototype.getTextStyle = function (node) {
var decoration = this.getDecoration(node);
if (!decoration)
return null;
return decoration.textStyle;
};
return DefaultDecorator;
}());
exports.DefaultDecorator = DefaultDecorator;
var _defaultDecorator = new DefaultDecorator();
var _defaultLabelProvider = new DefaultLabelProvider();
function addDecoration(nodeType, decoration) {
_defaultDecorator.addDecoration(nodeType, decoration);
}
exports.addDecoration = addDecoration;
function DefaultKeyProvider(node) {
if (!node)
return null;
if (node && !node.parent()) {
return node.name();
}
else {
return node.name() + " :: " + DefaultKeyProvider(node.parent());
}
}
function DefaultVisibilityFilter(node) {
return true;
}
function initialize() {
structureImpl.setKeyProvider(DefaultKeyProvider);
structureImpl.addLabelProvider(_defaultLabelProvider);
structureImpl.addDecorator(_defaultDecorator);
structureImpl.setVisibilityFilter(DefaultVisibilityFilter);
}
exports.initialize = initialize;
//# sourceMappingURL=structureDefault.js.map |