123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- "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();
- });
|