com.datastax.driver.core.Metadata.quoteIfNecessary()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(8.3k)|赞(0)|评价(0)|浏览(83)

本文整理了Java中com.datastax.driver.core.Metadata.quoteIfNecessary()方法的一些代码示例,展示了Metadata.quoteIfNecessary()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Metadata.quoteIfNecessary()方法的具体详情如下:
包路径:com.datastax.driver.core.Metadata
类名称:Metadata
方法名:quoteIfNecessary

Metadata.quoteIfNecessary介绍

[英]Quotes a CQL identifier if necessary.

This is similar to #quote(String), except that it won't quote the input string if it can safely be used as-is. For example:

  • quoteIfNecessary("foo").equals("foo") (no need to quote).
  • quoteIfNecessary("Foo").equals(""Foo"") (identifier is mixed case so case sensitivity is required)
  • quoteIfNecessary("foo bar").equals(""foo bar"") (identifier contains special characters)
  • quoteIfNecessary("table").equals(""table"") (identifier is a reserved CQL keyword)
    [中]如有必要,引用CQL标识符。
    这与#quote(String)类似,只是如果可以安全地按原样使用,它不会引用输入字符串。例如:
    *引用必要的(“foo”)。等于(“foo”)(无需引用)。
    *引用必要的(“Foo”)。等于(“\”Foo\”)(标识符大小写混合,因此需要区分大小写)
    *引用必要的(“foo-bar”)。等于(“\”foo bar\”)(标识符包含特殊字符)
    *引用必要的(“表格”)。等于(“\”table\”)(标识符是保留的CQL关键字)

代码示例

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

@Override
 public String toString() {
  return Metadata.quoteIfNecessary(name) + ' ' + type;
 }
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

@Override
public String toString() {
 String str = Metadata.quoteIfNecessary(name) + ' ' + type;
 return isStatic ? str + " static" : str;
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

/**
 * @deprecated preserved for backward compatibility, use {@link Metadata#quoteIfNecessary(String)}
 *     instead.
 */
@Deprecated
protected static String escapeId(String ident) {
 return Metadata.quoteIfNecessary(ident);
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

private StringBuilder appendClusteringOrder(StringBuilder sb) {
 sb.append("CLUSTERING ORDER BY (");
 for (int i = 0; i < clusteringColumns.size(); i++) {
  if (i > 0) sb.append(", ");
  sb.append(Metadata.quoteIfNecessary(clusteringColumns.get(i).getName()))
    .append(' ')
    .append(clusteringOrder.get(i));
 }
 return sb.append(')');
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

private void appendSignature(StringBuilder sb) {
 sb.append(Metadata.quoteIfNecessary(simpleName)).append('(');
 boolean first = true;
 for (DataType type : argumentTypes) {
  if (first) first = false;
  else sb.append(',');
  sb.append(type.asFunctionParameterString());
 }
 sb.append(')');
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

@Override
public String asFunctionParameterString() {
 return Metadata.quoteIfNecessary(getTypeName());
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

@Override
public String format(T value) {
 if (value == null) return "NULL";
 StringBuilder sb = new StringBuilder("{");
 int i = 0;
 for (UserType.Field field : definition) {
  if (i > 0) sb.append(",");
  sb.append(Metadata.quoteIfNecessary(field.getName()));
  sb.append(":");
  sb.append(formatField(value, Metadata.quoteIfNecessary(field.getName())));
  i += 1;
 }
 sb.append("}");
 return sb.toString();
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

@Override
public String toString() {
 String str =
   Metadata.quoteIfNecessary(getKeyspace()) + "." + Metadata.quoteIfNecessary(getTypeName());
 return isFrozen() ? "frozen<" + str + ">" : str;
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

private String asCQLQuery(boolean formatted) {
 StringBuilder sb = new StringBuilder();
 sb.append("CREATE TYPE ")
   .append(Metadata.quoteIfNecessary(keyspace))
   .append('.')
   .append(Metadata.quoteIfNecessary(typeName))
   .append(" (");
 if (formatted) {
  TableMetadata.spaceOrNewLine(sb, true);
 }
 for (int i = 0; i < byIdx.length; i++) {
  sb.append(byIdx[i]);
  if (i < byIdx.length - 1) {
   sb.append(',');
   TableMetadata.spaceOrNewLine(sb, formatted);
  } else {
   TableMetadata.newLine(sb, formatted);
  }
 }
 return sb.append(");").toString();
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

private static String targetFromLegacyOptions(
  ColumnMetadata column, Map<String, String> options) {
 String columnName = Metadata.quoteIfNecessary(column.getName());
 if (options.containsKey(INDEX_KEYS_OPTION_NAME)) return String.format("keys(%s)", columnName);
 if (options.containsKey(INDEX_ENTRIES_OPTION_NAME))
  return String.format("entries(%s)", columnName);
 if (column.getType() instanceof DataType.CollectionType && column.getType().isFrozen())
  return String.format("full(%s)", columnName);
 // Note: the keyword 'values' is not accepted as a valid index target function until 3.0
 return columnName;
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

Delete(TableMetadata table, List<Selector> columns) {
 this(
   Metadata.quoteIfNecessary(table.getKeyspace().getName()),
   Metadata.quoteIfNecessary(table.getName()),
   Arrays.asList(new Object[table.getPartitionKey().size()]),
   table.getPartitionKey(),
   columns);
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

Update(TableMetadata table) {
 this(
   Metadata.quoteIfNecessary(table.getKeyspace().getName()),
   Metadata.quoteIfNecessary(table.getName()),
   Arrays.asList(new Object[table.getPartitionKey().size()]),
   table.getPartitionKey());
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

Truncate(TableMetadata table) {
 this(
   Metadata.quoteIfNecessary(table.getKeyspace().getName()),
   Metadata.quoteIfNecessary(table.getName()),
   Arrays.asList(new Object[table.getPartitionKey().size()]),
   table.getPartitionKey());
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

Insert(TableMetadata table) {
 this(
   Metadata.quoteIfNecessary(table.getKeyspace().getName()),
   Metadata.quoteIfNecessary(table.getName()),
   Arrays.asList(new Object[table.getPartitionKey().size()]),
   table.getPartitionKey());
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

Select(TableMetadata table, List<Object> columnNames, boolean isDistinct, boolean isJson) {
 this(
   Metadata.quoteIfNecessary(table.getKeyspace().getName()),
   Metadata.quoteIfNecessary(table.getName()),
   Arrays.asList(new Object[table.getPartitionKey().size()]),
   table.getPartitionKey(),
   columnNames,
   isDistinct,
   isJson);
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

/**
 * Returns a CQL query representing this index.
 *
 * <p>This method returns a single 'CREATE INDEX' query corresponding to this index definition.
 *
 * @return the 'CREATE INDEX' query corresponding to this index.
 */
public String asCQLQuery() {
 String keyspaceName = Metadata.quoteIfNecessary(table.getKeyspace().getName());
 String tableName = Metadata.quoteIfNecessary(table.getName());
 String indexName = Metadata.quoteIfNecessary(this.name);
 return isCustomIndex()
   ? String.format(
     "CREATE CUSTOM INDEX %s ON %s.%s (%s) USING '%s' %s;",
     indexName, keyspaceName, tableName, getTarget(), getIndexClassName(), getOptionsAsCql())
   : String.format(
     "CREATE INDEX %s ON %s.%s (%s);", indexName, keyspaceName, tableName, getTarget());
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

@Test(groups = "unit")
public void escapeId_should_not_quote_lowercase_identifiers() {
 String id = "this_does_not_need_quoting_0123456789abcdefghijklmnopqrstuvwxyz";
 assertThat(Metadata.quoteIfNecessary(id)).isEqualTo(id);
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

@Test(groups = "unit")
public void escapeId_should_quote_non_lowercase_identifiers() {
 assertThat(Metadata.quoteIfNecessary("This_Needs_Quoting_1234"))
   .isEqualTo("\"This_Needs_Quoting_1234\"");
 assertThat(Metadata.quoteIfNecessary("This Needs Quoting 1234!!"))
   .isEqualTo("\"This Needs Quoting 1234!!\"");
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

@Test(groups = "unit")
public void escapeId_should_quote_reserved_cql_keywords() {
 assertThat(Metadata.quoteIfNecessary("columnfamily")).isEqualTo("\"columnfamily\"");
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

@Override
public T deserialize(ByteBuffer bytes, ProtocolVersion protocolVersion) {
 if (bytes == null) return null;
 // empty byte buffers will result in empty values
 try {
  ByteBuffer input = bytes.duplicate();
  T value = newInstance();
  for (UserType.Field field : definition) {
   if (!input.hasRemaining()) break;
   int n = input.getInt();
   ByteBuffer element = n < 0 ? null : CodecUtils.readBytes(input, n);
   value =
     deserializeAndSetField(
       element, value, Metadata.quoteIfNecessary(field.getName()), protocolVersion);
  }
  return value;
 } catch (BufferUnderflowException e) {
  throw new InvalidTypeException("Not enough bytes to deserialize a UDT", e);
 }
}

相关文章