public static String getTranslateResult(IdentifierCheckResult checkResult) { TSourceToken token = checkResult.getToken(); if (checkResult.canTranslate()) { IdentifierRuleResult[] results = checkResult.getCheckRuleResults(); if (results.length == 1) { try { if (results[0].getRule() == IdentifierRule.Function) { String result = isFunction(results[0].getToken(), results[0].getTargetVendor()); if (result != null) return result; } } catch (Exception e) { return null; } switch (checkResult.getTargetVendor()) { case dbvmysql: return "`" + removeQuote(token) + "`"; case dbvmssql: return "[" + removeQuote(token) + "]"; case dbvoracle: case dbvpostgresql: case dbvansi: return "\"" + removeQuote(token) + "\""; } } } return null; }
public static IdentifierCheckResult checkIdentifier(TSourceToken token, EDbVendor targetVendor) { IdentifierCheckResult checkResult = new IdentifierCheckResult(token, targetVendor); checkResult.addCheckRuleResult(checkSizeRule(token, targetVendor)); checkResult.addCheckRuleResult(checkBeginWithRule(token, targetVendor)); checkResult.addCheckRuleResult(checkSubsequentCharactersRule(token, targetVendor)); checkResult.addCheckRuleResult(checkQuotedIdentifierRule(token, targetVendor)); try { if (isFunction(token, targetVendor) != null) { checkResult.addCheckRuleResult(createFunctionRuleResult(token, targetVendor, true)); } else if (isSpecial(token, targetVendor) != null) { checkResult.addCheckRuleResult(createSpecialRuleResult(token, targetVendor, true, null)); } else { checkResult.addCheckRuleResult(checkKeywordRule(token, targetVendor)); } } catch (FunctionIdentifierException e) { checkResult.addCheckRuleResult(createFunctionRuleResult(token, targetVendor, false)); } catch (SpecialIdentifierException e) { checkResult.addCheckRuleResult( createSpecialRuleResult(token, targetVendor, false, e.getMessage())); } if (checkResult.canTranslate()) { checkResult.setTranslateResult(getTranslateResult(checkResult)); } return checkResult; }