"use strict"; /**  * Licensed Materials - Property of IBM  * IBM Cognos Products: Cognos Analytics  * Copyright IBM Corp. 2015, 2016  * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.  */ define(['bi/commons/ui/core/Class', 'doT'], function (Class, dot) { 'use strict'; //NOSONAR: meant to be strict var _singletonInstance = null; var StringUtil = Class.extend({ /** * Gets the JDBC Url section */ getJdbcUrl: function getJdbcUrl(cs) { var jdbcUrl = ""; var urlConstant = "URL="; var urlStart = cs.indexOf(urlConstant); if (urlStart !== -1) { var urlEnd; var driverConstant = ";DRIVER_NAME="; urlEnd = cs.indexOf(driverConstant, urlStart + urlConstant.length); if (urlEnd !== -1) { jdbcUrl = cs.substring(urlStart + urlConstant.length, urlEnd); } } return jdbcUrl; }, /** * Parses host/port/database name for most common format host:port/databaseName */ parseHost: function parseHost(url) { var result = {}; var pos1 = url.indexOf(":"); result.serverName = url.substring(0, pos1); var pos2 = url.indexOf("/"); if (pos2 < 0) { result.port = url.substring(pos1 + 1); } else { result.port = url.substring(pos1 + 1, pos2); result.databaseName = url.substring(pos2 + 1); } return result; }, /** * Searches the string for a given name */ getField: function getField(string, name) { var start = string.indexOf(name); if (start !== -1) { var end = string.indexOf(";", start + name.length); if (end === -1) { return string.substring(start + name.length); } return string.substring(start + name.length, end); } return ''; }, formatOracleNetDesc: function formatOracleNetDesc(value) { var formattedValue = ''; var indentLevel = 0; var lastBracket = null; for (var i = 0; i < value.length; i++) { var currChar = value.charAt(i); if (currChar === '(') { if (lastBracket === ')') { // )( formattedValue += '\n' + this.generateIndent(indentLevel) + currChar; } else { // (( if (lastBracket === null) { // for the very first bracket, don't newline or increase indentLevel formattedValue += this.generateIndent(indentLevel) + currChar; } else { indentLevel++; formattedValue += '\n' + this.generateIndent(indentLevel) + currChar; } } lastBracket = currChar; } else if (currChar === ')') { if (lastBracket === ')') { // )) indentLevel--; formattedValue += '\n' + this.generateIndent(indentLevel) + currChar; } else { // () formattedValue += currChar; } lastBracket = currChar; } else { // all other chars formattedValue += currChar; } } return formattedValue; }, generateIndent: function generateIndent(indentLevel) { var indent = ''; var j = indentLevel; while (j !== 0) { indent += '\t'; j--; } return indent; }, stripSpecialCharsFromOracleNetDesc: function stripSpecialCharsFromOracleNetDesc(value) { return value.replace(new RegExp("[\\t\\r\\n\\b\\f]", "g"), ""); } }); var _static = { getInstance: function getInstance() { if (!_singletonInstance) { _singletonInstance = new StringUtil(); } return _singletonInstance; } }; return _static.getInstance(); });