@Override public String toString() { return interned(DefaultPolicy()); }
/** * Raw string for an identifier, which is equivalent to an identifier directly used in SQL statements. * @param policy IdentifierPolicy * @return Raw string */ public String raw(IdentifierPolicy policy) { StringBuilder sb = new StringBuilder(); if (quoted) { appendByCase(sb, policy.storesQuotedIdentifierAs()); sb.insert(0, policy.getIdentifierQuoteString()); sb.append(policy.getIdentifierQuoteString()); } else { appendByCase(sb, policy.storesUnquotedIdentifierAs()); } return sb.toString(); }
/** * Raw string of qualified identifier * @param policy Identifier Policy * @return raw string */ public String interned(final IdentifierPolicy policy) { return StringUtils.join(names, "" + policy.getIdentifierSeperator(), new Function<Identifier, String>() { @Override public String apply(@Nullable Identifier identifier) { return identifier.interned(policy); } }); }
/** * Interned string of an identifier * @param policy IdentifierPolicy * @return interned string */ public String interned(IdentifierPolicy policy) { StringBuilder sb = new StringBuilder(); if (quoted) { appendByCase(sb, policy.storesQuotedIdentifierAs()); } else { appendByCase(sb, policy.storesUnquotedIdentifierAs()); } return sb.toString(); }
/** * It takes interned strings. It assumes all parameters already stripped. It is used only for tests. * @param names interned strings * @return QualifiedIdentifier */ @VisibleForTesting public static QualifiedIdentifier $(String...names) { final ImmutableList.Builder<Identifier> builder = ImmutableList.builder(); for (String n : names) { for (String split : n.split(StringUtils.escapeRegexp(""+DefaultPolicy().getIdentifierSeperator()))) { builder.add(Identifier._(split, IdentifierUtil.isShouldBeQuoted(split))); } } return new QualifiedIdentifier(builder.build()); }
public static boolean isDelimited(String raw, IdentifierPolicy policy) { char quoteString = policy.getIdentifierQuoteString(); boolean openQuote = raw.charAt(0) == quoteString; boolean closeQuote = raw.charAt(raw.length() - 1) == quoteString; // if at least one quote mark exists, the identifier must be grater than equal to 2 characters, if (openQuote ^ closeQuote && raw.length() < 2) { throw new IllegalArgumentException("Invalid Identifier: " + raw); } // does not allow the empty identifier (''), if (openQuote && closeQuote && raw.length() == 2) { throw new IllegalArgumentException("zero-length delimited identifier: " + raw); } // Ensure the quote open and close return openQuote && closeQuote; }
public static Identifier internIdentifierPart(String rawPart, IdentifierPolicy policy) { IdentifierCase unquotedIdentifierCase = policy.storesUnquotedIdentifierAs(); final String interned; if (unquotedIdentifierCase == IdentifierCase.LowerCase) { interned = rawPart.toLowerCase(Locale.ENGLISH); } else if (unquotedIdentifierCase == IdentifierCase.UpperCase) { interned = rawPart.toUpperCase(Locale.ENGLISH); } else { interned = rawPart; } return _(interned, false); }
@Override public String toString() { return raw(DefaultPolicy()); }
/** * Return a raw string representation for an identifier, which is equivalent to ones used in SQL statements. * * @param policy IdentifierPolicy * @return Raw identifier string */ public String raw(final IdentifierPolicy policy) { return StringUtils.join(names, "" + policy.getIdentifierSeperator(), new Function<Identifier, String>() { @Override public String apply(@Nullable Identifier identifier) { return identifier.raw(policy); } }); }
public String interned() { return interned(DefaultPolicy()); }
public static boolean isDelimited(String raw) { return isDelimited(raw, DefaultPolicy()); }
if (stack.isEmpty()) { // ensure outermost type parameters QualifiedIdentifier identifier = IdentifierUtil.makeIdentifier(str.substring(paramStartIdx, i), DefaultPolicy()); String typePart = str.substring(i + 1, str.length()); return new Field(identifier, decode(typePart));
/** * Make a string from a field * @param field A field * @return String representation for a field */ static String serializeField(Field field) { return field.name().raw(DefaultPolicy()) + " " + encode(field.type()); }