@Override protected List<ColumnDefinition> receivers(CFMetaData cfm) throws InvalidRequestException { assert cfm.isSuper() && cfm.isDense(); List<ColumnDefinition> names = new ArrayList<>(getEntities().size()); for (ColumnDefinition.Raw raw : getEntities()) { ColumnDefinition def = raw.prepare(cfm); checkTrue(def.isClusteringColumn() || cfm.isSuperColumnKeyColumn(def), "Multi-column relations can only be applied to clustering columns but was applied to: %s", def.name); checkFalse(names.contains(def), "Column \"%s\" appeared twice in a relation: %s", def.name, this); names.add(def); } return names; } }
@Override protected Restriction newEQRestriction(CFMetaData cfm, VariableSpecifications boundNames) throws InvalidRequestException { assert cfm.isSuper() && cfm.isDense(); List<ColumnDefinition> receivers = receivers(cfm); Term term = toTerm(receivers, getValue(), cfm.ksName, boundNames); return new SingleColumnRestriction.SuperColumnMultiEQRestriction(receivers.get(0), term); }
@Override protected List<ColumnDefinition> receivers(CFMetaData cfm) throws InvalidRequestException { assert cfm.isSuper() && cfm.isDense(); List<ColumnDefinition> names = new ArrayList<>(getEntities().size()); for (ColumnDefinition.Raw raw : getEntities()) { ColumnDefinition def = raw.prepare(cfm); checkTrue(def.isClusteringColumn() || cfm.isSuperColumnKeyColumn(def), "Multi-column relations can only be applied to clustering columns but was applied to: %s", def.name); checkFalse(names.contains(def), "Column \"%s\" appeared twice in a relation: %s", def.name, this); names.add(def); } return names; } }
@Override protected List<ColumnDefinition> receivers(CFMetaData cfm) throws InvalidRequestException { assert cfm.isSuper() && cfm.isDense(); List<ColumnDefinition> names = new ArrayList<>(getEntities().size()); for (ColumnDefinition.Raw raw : getEntities()) { ColumnDefinition def = raw.prepare(cfm); checkTrue(def.isClusteringColumn() || cfm.isSuperColumnKeyColumn(def), "Multi-column relations can only be applied to clustering columns but was applied to: %s", def.name); checkFalse(names.contains(def), "Column \"%s\" appeared twice in a relation: %s", def.name, this); names.add(def); } return names; } }
@Override public Relation toSuperColumnAdapter() { return new SuperColumnMultiColumnRelation(entities, relationType, valuesOrMarker, inValues, inMarker); }
@Override public Relation toSuperColumnAdapter() { return new SuperColumnMultiColumnRelation(entities, relationType, valuesOrMarker, inValues, inMarker); }
@Override protected Restriction newEQRestriction(CFMetaData cfm, VariableSpecifications boundNames) throws InvalidRequestException { assert cfm.isSuper() && cfm.isDense(); List<ColumnDefinition> receivers = receivers(cfm); Term term = toTerm(receivers, getValue(), cfm.ksName, boundNames); return new SingleColumnRestriction.SuperColumnMultiEQRestriction(receivers.get(0), term); }
@Override public Relation toSuperColumnAdapter() { return new SuperColumnMultiColumnRelation(entities, relationType, valuesOrMarker, inValues, inMarker); }
@Override protected Restriction newSliceRestriction(CFMetaData cfm, VariableSpecifications boundNames, Bound bound, boolean inclusive) throws InvalidRequestException { assert cfm.isSuper() && cfm.isDense(); List<ColumnDefinition> receivers = receivers(cfm); Term term = toTerm(receivers, getValue(), cfm.ksName, boundNames); return new SingleColumnRestriction.SuperColumnMultiSliceRestriction(receivers.get(0), bound, inclusive, term); }
@Override protected Restriction newSliceRestriction(CFMetaData cfm, VariableSpecifications boundNames, Bound bound, boolean inclusive) throws InvalidRequestException { assert cfm.isSuper() && cfm.isDense(); List<ColumnDefinition> receivers = receivers(cfm); Term term = toTerm(receivers, getValue(), cfm.ksName, boundNames); return new SingleColumnRestriction.SuperColumnMultiSliceRestriction(receivers.get(0), bound, inclusive, term); }
@Override protected Restriction newSliceRestriction(CFMetaData cfm, VariableSpecifications boundNames, Bound bound, boolean inclusive) throws InvalidRequestException { assert cfm.isSuper() && cfm.isDense(); List<ColumnDefinition> receivers = receivers(cfm); Term term = toTerm(receivers, getValue(), cfm.ksName, boundNames); return new SingleColumnRestriction.SuperColumnMultiSliceRestriction(receivers.get(0), bound, inclusive, term); }
@Override protected Restriction newEQRestriction(CFMetaData cfm, VariableSpecifications boundNames) throws InvalidRequestException { assert cfm.isSuper() && cfm.isDense(); List<ColumnDefinition> receivers = receivers(cfm); Term term = toTerm(receivers, getValue(), cfm.ksName, boundNames); return new SingleColumnRestriction.SuperColumnMultiEQRestriction(receivers.get(0), term); }