public ColumnSpecification makeCollectionReceiver(ColumnSpecification collection, boolean isKey) { return isKey ? Maps.keySpecOf(collection) : Maps.valueSpecOf(collection); } },
public ColumnSpecification makeCollectionReceiver(ColumnSpecification collection, boolean isKey) { return isKey ? Maps.keySpecOf(collection) : Maps.valueSpecOf(collection); } },
public ColumnSpecification makeCollectionReceiver(ColumnSpecification collection, boolean isKey) { return isKey ? Maps.keySpecOf(collection) : Maps.valueSpecOf(collection); } },
public ColumnSpecification makeCollectionReceiver(ColumnSpecification collection, boolean isKey) { return isKey ? Maps.keySpecOf(collection) : Maps.valueSpecOf(collection); } },
private static ColumnSpecification makeCollectionReceiver(ColumnSpecification collection, boolean isKey) { assert collection.type.isCollection(); switch (((CollectionType)collection.type).kind) { case LIST: assert !isKey; return Lists.valueSpecOf(collection); case SET: assert !isKey; return Sets.valueSpecOf(collection); case MAP: return isKey ? Maps.keySpecOf(collection) : Maps.valueSpecOf(collection); } throw new AssertionError(); }
public Operation prepare(CFMetaData cfm, ColumnDefinition receiver) throws InvalidRequestException { assert receiver.type instanceof MapType; Term k = selector.prepare(cfm.ksName, Maps.keySpecOf(receiver)); Term v = value.prepare(cfm.ksName, Maps.valueSpecOf(receiver)); return new Maps.AdderByKey(receiver, v, k); }
public Operation prepare(CFMetaData cfm, ColumnDefinition receiver) throws InvalidRequestException { assert receiver.type instanceof MapType; Term k = selector.prepare(cfm.ksName, Maps.keySpecOf(receiver)); Term v = value.prepare(cfm.ksName, Maps.valueSpecOf(receiver)); return new Maps.AdderByKey(receiver, v, k); }
public Operation prepare(CFMetaData cfm, ColumnDefinition receiver) throws InvalidRequestException { assert receiver.type instanceof MapType; Term k = selector.prepare(cfm.ksName, Maps.keySpecOf(receiver)); Term v = value.prepare(cfm.ksName, Maps.valueSpecOf(receiver)); return new Maps.SubtracterByKey(receiver, v, k); }
public Operation prepare(CFMetaData cfm, ColumnDefinition receiver) throws InvalidRequestException { assert receiver.type instanceof MapType; Term k = selector.prepare(cfm.ksName, Maps.keySpecOf(receiver)); Term v = value.prepare(cfm.ksName, Maps.valueSpecOf(receiver)); return new Maps.SubtracterByKey(receiver, v, k); }
public Operation prepare(CFMetaData cfm, ColumnDefinition receiver) throws InvalidRequestException { assert receiver.type instanceof MapType; Term k = selector.prepare(cfm.ksName, Maps.keySpecOf(receiver)); Term v = value.prepare(cfm.ksName, Maps.valueSpecOf(receiver)); return new Maps.AdderByKey(receiver, v, k); }
public Operation prepare(CFMetaData cfm, ColumnDefinition receiver) throws InvalidRequestException { assert receiver.type instanceof MapType; Term k = selector.prepare(cfm.ksName, Maps.keySpecOf(receiver)); Term v = value.prepare(cfm.ksName, Maps.valueSpecOf(receiver)); return new Maps.SubtracterByKey(receiver, v, k); }
private void validateAssignableTo(String keyspace, ColumnSpecification receiver) throws InvalidRequestException { if (!(receiver.type instanceof MapType)) throw new InvalidRequestException(String.format("Invalid map literal for %s of type %s", receiver.name, receiver.type.asCQL3Type())); ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); for (Pair<Term.Raw, Term.Raw> entry : entries) { if (!entry.left.isAssignableTo(keyspace, keySpec)) throw new InvalidRequestException(String.format("Invalid map literal for %s: key %s is not of type %s", receiver.name, entry.left, keySpec.type.asCQL3Type())); if (!entry.right.isAssignableTo(keyspace, valueSpec)) throw new InvalidRequestException(String.format("Invalid map literal for %s: value %s is not of type %s", receiver.name, entry.right, valueSpec.type.asCQL3Type())); } }
public Term prepare(String keyspace, ColumnSpecification receiver) throws InvalidRequestException { validateAssignableTo(keyspace, receiver); ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); Map<Term, Term> values = new HashMap<Term, Term>(entries.size()); boolean allTerminal = true; for (Pair<Term.Raw, Term.Raw> entry : entries) { Term k = entry.left.prepare(keyspace, keySpec); Term v = entry.right.prepare(keyspace, valueSpec); if (k.containsBindMarker() || v.containsBindMarker()) throw new InvalidRequestException(String.format("Invalid map literal for %s: bind variables are not supported inside collection literals", receiver.name)); if (k instanceof Term.NonTerminal || v instanceof Term.NonTerminal) allTerminal = false; values.put(k, v); } DelayedValue value = new DelayedValue(((MapType)receiver.type).getKeysType(), values); return allTerminal ? value.bind(QueryOptions.DEFAULT) : value; }
private void validateAssignableTo(String keyspace, ColumnSpecification receiver) throws InvalidRequestException { if (!(receiver.type instanceof MapType)) throw new InvalidRequestException(String.format("Invalid map literal for %s of type %s", receiver.name, receiver.type.asCQL3Type())); ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); for (Pair<Term.Raw, Term.Raw> entry : entries) { if (!entry.left.testAssignment(keyspace, keySpec).isAssignable()) throw new InvalidRequestException(String.format("Invalid map literal for %s: key %s is not of type %s", receiver.name, entry.left, keySpec.type.asCQL3Type())); if (!entry.right.testAssignment(keyspace, valueSpec).isAssignable()) throw new InvalidRequestException(String.format("Invalid map literal for %s: value %s is not of type %s", receiver.name, entry.right, valueSpec.type.asCQL3Type())); } }
private void validateAssignableTo(String keyspace, ColumnSpecification receiver) throws InvalidRequestException { if (!(receiver.type instanceof MapType)) throw new InvalidRequestException(String.format("Invalid map literal for %s of type %s", receiver.name, receiver.type.asCQL3Type())); ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); for (Pair<Term.Raw, Term.Raw> entry : entries) { if (!entry.left.testAssignment(keyspace, keySpec).isAssignable()) throw new InvalidRequestException(String.format("Invalid map literal for %s: key %s is not of type %s", receiver.name, entry.left, keySpec.type.asCQL3Type())); if (!entry.right.testAssignment(keyspace, valueSpec).isAssignable()) throw new InvalidRequestException(String.format("Invalid map literal for %s: value %s is not of type %s", receiver.name, entry.right, valueSpec.type.asCQL3Type())); } }
private void validateAssignableTo(String keyspace, ColumnSpecification receiver) throws InvalidRequestException { if (!(receiver.type instanceof MapType)) throw new InvalidRequestException(String.format("Invalid map literal for %s of type %s", receiver.name, receiver.type.asCQL3Type())); ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); for (Pair<Term.Raw, Term.Raw> entry : entries) { if (!entry.left.testAssignment(keyspace, keySpec).isAssignable()) throw new InvalidRequestException(String.format("Invalid map literal for %s: key %s is not of type %s", receiver.name, entry.left, keySpec.type.asCQL3Type())); if (!entry.right.testAssignment(keyspace, valueSpec).isAssignable()) throw new InvalidRequestException(String.format("Invalid map literal for %s: value %s is not of type %s", receiver.name, entry.right, valueSpec.type.asCQL3Type())); } }
private void validateAssignableTo(String keyspace, ColumnSpecification receiver) throws InvalidRequestException { if (!(receiver.type instanceof MapType)) throw new InvalidRequestException(String.format("Invalid map literal for %s of type %s", receiver.name, receiver.type.asCQL3Type())); ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); for (Pair<Term.Raw, Term.Raw> entry : entries) { if (!entry.left.testAssignment(keyspace, keySpec).isAssignable()) throw new InvalidRequestException(String.format("Invalid map literal for %s: key %s is not of type %s", receiver.name, entry.left, keySpec.type.asCQL3Type())); if (!entry.right.testAssignment(keyspace, valueSpec).isAssignable()) throw new InvalidRequestException(String.format("Invalid map literal for %s: value %s is not of type %s", receiver.name, entry.right, valueSpec.type.asCQL3Type())); } }
public Operation prepare(CFMetaData cfm, ColumnDefinition receiver) throws InvalidRequestException { if (!(receiver.type instanceof CollectionType)) throw new InvalidRequestException(String.format("Invalid operation (%s) for non collection column %s", toString(receiver), receiver.name)); else if (!(receiver.type.isMultiCell())) throw new InvalidRequestException(String.format("Invalid operation (%s) for frozen collection column %s", toString(receiver), receiver.name)); switch (((CollectionType)receiver.type).kind) { case LIST: Term idx = selector.prepare(cfm.ksName, Lists.indexSpecOf(receiver)); Term lval = value.prepare(cfm.ksName, Lists.valueSpecOf(receiver)); return new Lists.SetterByIndex(receiver, idx, lval); case SET: throw new InvalidRequestException(String.format("Invalid operation (%s) for set column %s", toString(receiver), receiver.name)); case MAP: Term key = selector.prepare(cfm.ksName, Maps.keySpecOf(receiver)); Term mval = value.prepare(cfm.ksName, Maps.valueSpecOf(receiver)); return new Maps.SetterByKey(receiver, key, mval); } throw new AssertionError(); }
public Operation prepare(String keyspace, ColumnDefinition receiver) throws InvalidRequestException { if (!(receiver.type instanceof CollectionType)) throw new InvalidRequestException(String.format("Invalid operation (%s) for non collection column %s", toString(receiver), receiver.name)); else if (!(receiver.type.isMultiCell())) throw new InvalidRequestException(String.format("Invalid operation (%s) for frozen collection column %s", toString(receiver), receiver.name)); switch (((CollectionType)receiver.type).kind) { case LIST: Term idx = selector.prepare(keyspace, Lists.indexSpecOf(receiver)); Term lval = value.prepare(keyspace, Lists.valueSpecOf(receiver)); return new Lists.SetterByIndex(receiver, idx, lval); case SET: throw new InvalidRequestException(String.format("Invalid operation (%s) for set column %s", toString(receiver), receiver.name)); case MAP: Term key = selector.prepare(keyspace, Maps.keySpecOf(receiver)); Term mval = value.prepare(keyspace, Maps.valueSpecOf(receiver)); return new Maps.SetterByKey(receiver, key, mval); } throw new AssertionError(); }
public Operation prepare(CFMetaData cfm, ColumnDefinition receiver) throws InvalidRequestException { if (!(receiver.type instanceof CollectionType)) throw new InvalidRequestException(String.format("Invalid operation (%s) for non collection column %s", toString(receiver), receiver.name)); else if (!(receiver.type.isMultiCell())) throw new InvalidRequestException(String.format("Invalid operation (%s) for frozen collection column %s", toString(receiver), receiver.name)); switch (((CollectionType)receiver.type).kind) { case LIST: Term idx = selector.prepare(cfm.ksName, Lists.indexSpecOf(receiver)); Term lval = value.prepare(cfm.ksName, Lists.valueSpecOf(receiver)); return new Lists.SetterByIndex(receiver, idx, lval); case SET: throw new InvalidRequestException(String.format("Invalid operation (%s) for set column %s", toString(receiver), receiver.name)); case MAP: Term key = selector.prepare(cfm.ksName, Maps.keySpecOf(receiver)); Term mval = value.prepare(cfm.ksName, Maps.valueSpecOf(receiver)); return new Maps.SetterByKey(receiver, key, mval); } throw new AssertionError(); }