public ColumnSpecification makeCollectionReceiver(ColumnSpecification collection, boolean isKey) { return isKey ? Maps.keySpecOf(collection) : Maps.valueSpecOf(collection); } },
public Operation prepare(String keyspace, ColumnDefinition receiver, CFMetaData cfm) throws InvalidRequestException { if (!(receiver.type.isCollection())) throw new InvalidRequestException(String.format("Invalid deletion operation for non collection column %s", receiver.name)); else if (!(receiver.type.isMultiCell())) throw new InvalidRequestException(String.format("Invalid deletion operation for frozen collection column %s", receiver.name)); switch (((CollectionType)receiver.type).kind) { case LIST: Term idx = element.prepare(keyspace, Lists.indexSpecOf(receiver)); return new Lists.DiscarderByIndex(receiver, idx); case SET: Term elt = element.prepare(keyspace, Sets.valueSpecOf(receiver)); return new Sets.ElementDiscarder(receiver, elt); case MAP: Term key = element.prepare(keyspace, Maps.keySpecOf(receiver)); return new Maps.DiscarderByKey(receiver, key); } throw new AssertionError(); } }
public Operation prepare(String keyspace, ColumnDefinition receiver, CFMetaData cfm) throws InvalidRequestException { if (!(receiver.type.isCollection())) throw new InvalidRequestException(String.format("Invalid deletion operation for non collection column %s", receiver.name)); else if (!(receiver.type.isMultiCell())) throw new InvalidRequestException(String.format("Invalid deletion operation for frozen collection column %s", receiver.name)); switch (((CollectionType)receiver.type).kind) { case LIST: Term idx = element.prepare(keyspace, Lists.indexSpecOf(receiver)); return new Lists.DiscarderByIndex(receiver, idx); case SET: Term elt = element.prepare(keyspace, Sets.valueSpecOf(receiver)); return new Sets.ElementDiscarder(receiver, elt); case MAP: Term key = element.prepare(keyspace, Maps.keySpecOf(receiver)); return new Maps.DiscarderByKey(receiver, key); } throw new AssertionError(); } }
public ColumnSpecification makeCollectionReceiver(ColumnSpecification collection, boolean isKey) { return isKey ? Maps.keySpecOf(collection) : Maps.valueSpecOf(collection); } },
public Operation prepare(String keyspace, ColumnDefinition receiver, CFMetaData cfm) throws InvalidRequestException { if (!(receiver.type.isCollection())) throw new InvalidRequestException(String.format("Invalid deletion operation for non collection column %s", receiver.name)); else if (!(receiver.type.isMultiCell())) throw new InvalidRequestException(String.format("Invalid deletion operation for frozen collection column %s", receiver.name)); switch (((CollectionType)receiver.type).kind) { case LIST: Term idx = element.prepare(keyspace, Lists.indexSpecOf(receiver)); return new Lists.DiscarderByIndex(receiver, idx); case SET: Term elt = element.prepare(keyspace, Sets.valueSpecOf(receiver)); return new Sets.ElementDiscarder(receiver, elt); case MAP: Term key = element.prepare(keyspace, Maps.keySpecOf(receiver)); return new Maps.DiscarderByKey(receiver, key); } throw new AssertionError(); } }
public ColumnSpecification makeCollectionReceiver(ColumnSpecification collection, boolean isKey) { return isKey ? Maps.keySpecOf(collection) : Maps.valueSpecOf(collection); } },
public Operation prepare(String keyspace, ColumnDefinition receiver) throws InvalidRequestException { if (!(receiver.type.isCollection())) throw new InvalidRequestException(String.format("Invalid deletion operation for non collection column %s", receiver.name)); else if (!(receiver.type.isMultiCell())) throw new InvalidRequestException(String.format("Invalid deletion operation for frozen collection column %s", receiver.name)); switch (((CollectionType)receiver.type).kind) { case LIST: Term idx = element.prepare(keyspace, Lists.indexSpecOf(receiver)); return new Lists.DiscarderByIndex(receiver, idx); case SET: Term elt = element.prepare(keyspace, Sets.valueSpecOf(receiver)); return new Sets.ElementDiscarder(receiver, elt); case MAP: Term key = element.prepare(keyspace, Maps.keySpecOf(receiver)); return new Maps.DiscarderByKey(receiver, key); } throw new AssertionError(); } }
public ColumnSpecification makeCollectionReceiver(ColumnSpecification collection, boolean isKey) { return isKey ? Maps.keySpecOf(collection) : Maps.valueSpecOf(collection); } },
public Operation prepare(String keyspace, ColumnDefinition receiver, CFMetaData cfm) throws InvalidRequestException { if (!(receiver.type.isCollection())) throw new InvalidRequestException(String.format("Invalid deletion operation for non collection column %s", receiver.name)); else if (!(receiver.type.isMultiCell())) throw new InvalidRequestException(String.format("Invalid deletion operation for frozen collection column %s", receiver.name)); switch (((CollectionType)receiver.type).kind) { case LIST: Term idx = element.prepare(keyspace, Lists.indexSpecOf(receiver)); return new Lists.DiscarderByIndex(receiver, idx); case SET: Term elt = element.prepare(keyspace, Sets.valueSpecOf(receiver)); return new Sets.ElementDiscarder(receiver, elt); case MAP: Term key = element.prepare(keyspace, Maps.keySpecOf(receiver)); return new Maps.DiscarderByKey(receiver, key); } 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 AssignmentTestable.TestResult testAssignment(String keyspace, ColumnSpecification receiver) { if (!(receiver.type instanceof MapType)) return AssignmentTestable.TestResult.NOT_ASSIGNABLE; // If there is no elements, we can't say it's an exact match (an empty map if fundamentally polymorphic). if (entries.isEmpty()) return AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE; ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); // It's an exact match if all are exact match, but is not assignable as soon as any is non assignable. AssignmentTestable.TestResult res = AssignmentTestable.TestResult.EXACT_MATCH; for (Pair<Term.Raw, Term.Raw> entry : entries) { AssignmentTestable.TestResult t1 = entry.left.testAssignment(keyspace, keySpec); AssignmentTestable.TestResult t2 = entry.right.testAssignment(keyspace, valueSpec); if (t1 == AssignmentTestable.TestResult.NOT_ASSIGNABLE || t2 == AssignmentTestable.TestResult.NOT_ASSIGNABLE) return AssignmentTestable.TestResult.NOT_ASSIGNABLE; if (t1 != AssignmentTestable.TestResult.EXACT_MATCH || t2 != AssignmentTestable.TestResult.EXACT_MATCH) res = AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE; } return res; }
public AssignmentTestable.TestResult testAssignment(String keyspace, ColumnSpecification receiver) { if (!(receiver.type instanceof MapType)) return AssignmentTestable.TestResult.NOT_ASSIGNABLE; // If there is no elements, we can't say it's an exact match (an empty map if fundamentally polymorphic). if (entries.isEmpty()) return AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE; ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); // It's an exact match if all are exact match, but is not assignable as soon as any is non assignable. AssignmentTestable.TestResult res = AssignmentTestable.TestResult.EXACT_MATCH; for (Pair<Term.Raw, Term.Raw> entry : entries) { AssignmentTestable.TestResult t1 = entry.left.testAssignment(keyspace, keySpec); AssignmentTestable.TestResult t2 = entry.right.testAssignment(keyspace, valueSpec); if (t1 == AssignmentTestable.TestResult.NOT_ASSIGNABLE || t2 == AssignmentTestable.TestResult.NOT_ASSIGNABLE) return AssignmentTestable.TestResult.NOT_ASSIGNABLE; if (t1 != AssignmentTestable.TestResult.EXACT_MATCH || t2 != AssignmentTestable.TestResult.EXACT_MATCH) res = AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE; } return res; }
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); }
public AssignmentTestable.TestResult testAssignment(String keyspace, ColumnSpecification receiver) { if (!(receiver.type instanceof MapType)) return AssignmentTestable.TestResult.NOT_ASSIGNABLE; // If there is no elements, we can't say it's an exact match (an empty map if fundamentally polymorphic). if (entries.isEmpty()) return AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE; ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); // It's an exact match if all are exact match, but is not assignable as soon as any is non assignable. AssignmentTestable.TestResult res = AssignmentTestable.TestResult.EXACT_MATCH; for (Pair<Term.Raw, Term.Raw> entry : entries) { AssignmentTestable.TestResult t1 = entry.left.testAssignment(keyspace, keySpec); AssignmentTestable.TestResult t2 = entry.right.testAssignment(keyspace, valueSpec); if (t1 == AssignmentTestable.TestResult.NOT_ASSIGNABLE || t2 == AssignmentTestable.TestResult.NOT_ASSIGNABLE) return AssignmentTestable.TestResult.NOT_ASSIGNABLE; if (t1 != AssignmentTestable.TestResult.EXACT_MATCH || t2 != AssignmentTestable.TestResult.EXACT_MATCH) res = AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE; } return res; }
public AssignmentTestable.TestResult testAssignment(String keyspace, ColumnSpecification receiver) { if (!(receiver.type instanceof MapType)) return AssignmentTestable.TestResult.NOT_ASSIGNABLE; // If there is no elements, we can't say it's an exact match (an empty map if fundamentally polymorphic). if (entries.isEmpty()) return AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE; ColumnSpecification keySpec = Maps.keySpecOf(receiver); ColumnSpecification valueSpec = Maps.valueSpecOf(receiver); // It's an exact match if all are exact match, but is not assignable as soon as any is non assignable. AssignmentTestable.TestResult res = AssignmentTestable.TestResult.EXACT_MATCH; for (Pair<Term.Raw, Term.Raw> entry : entries) { AssignmentTestable.TestResult t1 = entry.left.testAssignment(keyspace, keySpec); AssignmentTestable.TestResult t2 = entry.right.testAssignment(keyspace, valueSpec); if (t1 == AssignmentTestable.TestResult.NOT_ASSIGNABLE || t2 == AssignmentTestable.TestResult.NOT_ASSIGNABLE) return AssignmentTestable.TestResult.NOT_ASSIGNABLE; if (t1 != AssignmentTestable.TestResult.EXACT_MATCH || t2 != AssignmentTestable.TestResult.EXACT_MATCH) res = AssignmentTestable.TestResult.WEAKLY_ASSIGNABLE; } return res; }
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(); }