/** * Take a string literal and escape it as necessary. By default, this converts ' to ''. * * @param str String literal value (unquoted), never null * @return Escaped string literal value */ static String escapeStringValue( String str, String tick ) { return StringUtil.replaceAll(str, tick, tick + tick); }
/** * Return a stringified version of the array, using a ',' as a delimiter * @param array the array * @return the string form of the array * @see #toString(Object[], String) */ public static String toString( final Object[] array ) { return toString(array, ",", true); //$NON-NLS-1$ }
private static Object convert(Object value, Class<?> type) { if(value.getClass() == type) { return value; } if (value instanceof String) { String str = (String)value; return StringUtil.valueOf(str, type); } return value; }
protected boolean matchesPartialName(String partialGroupName, String name, Schema schema) { if (!StringUtil.endsWithIgnoreCase(name, partialGroupName)) { return false; } int schemaMatch = partialGroupName.length() - name.length(); if (schemaMatch > 0) { if (schemaMatch != schema.getName().length() + 1 || !StringUtil.startsWithIgnoreCase(partialGroupName, schema.getName()) || partialGroupName.charAt(schemaMatch + 1) != '.') { return false; } } else if (schemaMatch < 0 && name.charAt(-schemaMatch - 1) != '.') { return false; } return true; }
@Override public void log(int level, String context, Throwable t, Object... msg) { Logger logger = getLogger(context); Level jbossLevel = convert2JbossLevel(level); if (msg.length == 0) { logger.log(jbossLevel, null, t); } else if (msg.length == 1 && !(msg[0] instanceof String)) { String msgStr = StringUtil.toString(msg, " ", false); //$NON-NLS-1$ if (msgStr.indexOf('%') > -1) { msgStr = StringUtil.replaceAll(msgStr, "%", "%%"); //$NON-NLS-1$ //$NON-NLS-2$ } logger.logf(jbossLevel, t, msgStr, msg); } else { logger.log(jbossLevel, StringUtil.toString(msg, " ", false), t); //$NON-NLS-1$ } }
@Override public String getSourceHint() { return StringUtil.join(hint, " "); //$NON-NLS-1$ }
public static boolean nameMatchesGroup(String groupContext, String fullName) { //if there is a name match, make sure that it is the full name or a proper qualifier if (StringUtil.endsWithIgnoreCase(fullName, groupContext)) { int matchIndex = fullName.length() - groupContext.length(); if (matchIndex == 0 || fullName.charAt(matchIndex - 1) == '.') { return true; } } return false; }
/** * @return Returns the version. */ public String getVersion() { if (this.version != null) { //normalize to allow for more increments StringBuilder builder = new StringBuilder(); List<String> parts = StringUtil.split(this.version, "."); //$NON-NLS-1$ for (int i = 0; i < parts.size(); i++) { if (i > 0) { builder.append('.'); } String part = parts.get(i); if (part.length() < 2 && Character.isDigit(part.charAt(0))) { builder.append('0'); } builder.append(part); } return builder.toString(); } return this.version; }
static List<ElementSymbol> getElementsUnderNode(Object mid, Collection<ElementSymbol> validElements, QueryMetadataInterface metadata) throws TeiidComponentException, QueryMetadataException { List<ElementSymbol> elements = new ArrayList<ElementSymbol>(); String nodeName = metadata.getFullName(mid); for (ElementSymbol validElement : validElements) { String qualifiedName = validElement.getName(); if (StringUtil.startsWithIgnoreCase(qualifiedName, nodeName) && (qualifiedName.length() == nodeName.length() || qualifiedName.charAt(nodeName.length()) == '.')) { elements.add(validElement); } } return elements; }
@Override public List<?> translate(Function function) { if (function.getParameters().get(0) instanceof ColumnReference) { ColumnReference cr = (ColumnReference)function.getParameters().get(0); String nativeType = cr.getMetadataObject().getNativeType(); if (nativeType != null && StringUtil.indexOfIgnoreCase(nativeType, "char") == -1) { //$NON-NLS-1$ Function cast = ConvertModifier.createConvertFunction(getLanguageFactory(), cr, (StringUtil.startsWithIgnoreCase(nativeType.trim(), "n")?"n":"")+"varchar(max)"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ cast.setName("cast"); //$NON-NLS-1$ function.getParameters().set(0, cast); } } return super.translate(function); } }
/** * <p>Constructor which initializes with the connection object on which metadata * is sought * @param driver's connection object. * @throws SQLException if the connection is already closed. */ DatabaseMetaDataImpl(ConnectionImpl connection) { this.driverConnection = connection; if (PropertiesUtils.getBooleanProperty(connection.getConnectionProps(), REPORT_AS_VIEWS, true)) { TABLE_TYPE = "CASE WHEN IsSystem = 'true' and UCASE(Type) = 'TABLE' THEN 'SYSTEM TABLE' WHEN IsPhysical <> 'true' AND UCASE(Type) = 'TABLE' THEN 'VIEW' ELSE UCASE(Type) END"; //$NON-NLS-1$ } else { TABLE_TYPE = "CASE WHEN IsSystem = 'true' and UCASE(Type) = 'TABLE' THEN 'SYSTEM TABLE' ELSE UCASE(Type) END"; //$NON-NLS-1$ } String nullSortProp = connection.getConnectionProps().getProperty(NULL_SORT); if (nullSortProp != null) { nullSort = StringUtil.caseInsensitiveValueOf(NullSort.class, nullSortProp); } QUERY_TABLES = new StringBuffer("SELECT VDBName AS TABLE_CAT, SchemaName AS TABLE_SCHEM, Name AS TABLE_NAME") //$NON-NLS-1$ .append(", ").append(TABLE_TYPE).append(" AS TABLE_TYPE, Description AS REMARKS, NULL AS TYPE_CAT, NULL AS TYPE_SCHEM") //$NON-NLS-1$ //$NON-NLS-2$ .append(", NULL AS TYPE_NAME, NULL AS SELF_REFERENCING_COL_NAME, NULL AS REF_GENERATION, IsPhysical AS ISPHYSICAL") //$NON-NLS-1$ .append(" FROM ").append(RUNTIME_MODEL.VIRTUAL_MODEL_NAME).append(".Tables g ") //$NON-NLS-1$ //$NON-NLS-2$ .append(" WHERE UCASE(VDBName)").append(LIKE_ESCAPE)//$NON-NLS-1$ .append(" AND UCASE(SchemaName)").append(LIKE_ESCAPE)//$NON-NLS-1$ .append(" AND UCASE(Name)") .append(LIKE_ESCAPE).toString(); //$NON-NLS-1$ }
@TeiidFunction(category=FunctionCategoryConstants.SYSTEM) public static String[] tokenize(String str, char delimiter) { List<String> tokens = StringUtil.tokenize(str, delimiter); return tokens.toArray(new String[tokens.size()]); }
protected boolean matchesPartialName(String partialGroupName, String name, Schema schema) { if (!StringUtil.endsWithIgnoreCase(name, partialGroupName)) { return false; } int schemaMatch = partialGroupName.length() - name.length(); if (schemaMatch > 0) { if (schemaMatch != schema.getName().length() + 1 || !StringUtil.startsWithIgnoreCase(partialGroupName, schema.getName()) || partialGroupName.charAt(schemaMatch + 1) != '.') { return false; } } else if (schemaMatch < 0 && name.charAt(-schemaMatch - 1) != '.') { return false; } return true; }
public String getGeneralHint() { if (generalHint == null) { return null; } return StringUtil.join(generalHint, " "); }
public static boolean nameMatchesGroup(String groupContext, String fullName) { //if there is a name match, make sure that it is the full name or a proper qualifier if (StringUtil.endsWithIgnoreCase(fullName, groupContext)) { int matchIndex = fullName.length() - groupContext.length(); if (matchIndex == 0 || fullName.charAt(matchIndex - 1) == '.') { return true; } } return false; }
/** * @return Returns the version. */ public String getVersion() { if (this.version != null) { //normalize to allow for more increments StringBuilder builder = new StringBuilder(); List<String> parts = StringUtil.split(this.version, "."); //$NON-NLS-1$ for (int i = 0; i < parts.size(); i++) { if (i > 0) { builder.append('.'); } String part = parts.get(i); if (part.length() < 2 && Character.isDigit(part.charAt(0))) { builder.append('0'); } builder.append(part); } return builder.toString(); } return this.version; }
private void parseOptions(Matcher m, Option.MakeDep option) { if (m.group(3) != null) { if (StringUtil.startsWithIgnoreCase(m.group(3), "no")) { //$NON-NLS-1$ option.setJoin(false); } else { option.setJoin(true); } } if (m.group(2) != null) { option.setMax(Integer.valueOf(m.group(2).trim().substring(4))); } }
/** * <p>Constructor which initializes with the connection object on which metadata * is sought * @param driver's connection object. * @throws SQLException if the connection is already closed. */ DatabaseMetaDataImpl(ConnectionImpl connection) { this.driverConnection = connection; if (PropertiesUtils.getBooleanProperty(connection.getConnectionProps(), REPORT_AS_VIEWS, true)) { TABLE_TYPE = "CASE WHEN IsSystem = 'true' and UCASE(Type) = 'TABLE' THEN 'SYSTEM TABLE' WHEN IsPhysical <> 'true' AND UCASE(Type) = 'TABLE' THEN 'VIEW' ELSE UCASE(Type) END"; //$NON-NLS-1$ } else { TABLE_TYPE = "CASE WHEN IsSystem = 'true' and UCASE(Type) = 'TABLE' THEN 'SYSTEM TABLE' ELSE UCASE(Type) END"; //$NON-NLS-1$ } String nullSortProp = connection.getConnectionProps().getProperty(NULL_SORT); if (nullSortProp != null) { nullSort = StringUtil.caseInsensitiveValueOf(NullSort.class, nullSortProp); } QUERY_TABLES = new StringBuffer("SELECT VDBName AS TABLE_CAT, SchemaName AS TABLE_SCHEM, Name AS TABLE_NAME") //$NON-NLS-1$ .append(", ").append(TABLE_TYPE).append(" AS TABLE_TYPE, Description AS REMARKS, NULL AS TYPE_CAT, NULL AS TYPE_SCHEM") //$NON-NLS-1$ //$NON-NLS-2$ .append(", NULL AS TYPE_NAME, NULL AS SELF_REFERENCING_COL_NAME, NULL AS REF_GENERATION, IsPhysical AS ISPHYSICAL") //$NON-NLS-1$ .append(" FROM ").append(RUNTIME_MODEL.VIRTUAL_MODEL_NAME).append(".Tables g ") //$NON-NLS-1$ //$NON-NLS-2$ .append(" WHERE UCASE(VDBName)").append(LIKE_ESCAPE)//$NON-NLS-1$ .append(" AND UCASE(SchemaName)").append(LIKE_ESCAPE)//$NON-NLS-1$ .append(" AND UCASE(Name)") .append(LIKE_ESCAPE).toString(); //$NON-NLS-1$ }
@TeiidFunction(category=FunctionCategoryConstants.SYSTEM) public static String[] tokenize(String str, char delimiter) { List<String> tokens = StringUtil.tokenize(str, delimiter); return tokens.toArray(new String[tokens.size()]); }
/** * Creates a SQL-safe string. Simply replaces all occurrences of ' with '' * @param str the input string * @return a SQL-safe string */ protected String escapeString(String str, String quote) { return StringUtil.replaceAll(str, quote, quote + quote); }