@Override public FilterFieldExpression filterByNamespace() { return new SimpleFieldExpressionImpl(FieldExpressionUtil.FIELD_NAMESPACE); } }
@Override public FilterFieldExpression filterByThingId() { return new SimpleFieldExpressionImpl(FieldExpressionUtil.FIELD_ID); }
@Override public SortFieldExpression sortByThingId() { return new SimpleFieldExpressionImpl(FieldExpressionUtil.FIELD_ID); }
/** * internal factory method for fields where the filter and the sortOptions field expression is the same. * * @throws IllegalArgumentException if the property can not be mapped. Because of this, call this method last in the * workflow. */ private FieldExpression common(final String propertyName) throws IllegalArgumentException { if (FieldExpressionUtil.isAttributeFieldName(propertyName)) { return new AttributeExpressionImpl(FieldExpressionUtil.stripAttributesPrefix(propertyName)); } final String fieldName = simpleFieldMappings.get(propertyName); if (fieldName != null) { return new SimpleFieldExpressionImpl(fieldName); } throw new IllegalArgumentException("Unknown property name: " + propertyName); }
private static Bson createTertiaryMatchStage(final Criteria filterCriteria, final Predicate authorizationSubjectsPredicate) { final Criteria thingV1Criteria = CRITERIA_FACTORY.fieldCriteria( new SimpleFieldExpressionImpl(FIELD_GRANTS), CRITERIA_FACTORY.eq(null)); // ACL and global-READ are checked at the beginning. // check policy entries here, let ACL and global-Read fall through. final Criteria internalGrCriteria = CRITERIA_FACTORY.existsCriteria( new SimpleFieldExpressionImpl(FIELD_INTERNAL_GLOBAL_READS)); final Criteria internalAclCriteria = CRITERIA_FACTORY.existsCriteria( new SimpleFieldExpressionImpl(FIELD_INTERNAL_ACL)); return match(or( CreatePolicyRestrictionBsonVisitor.apply(filterCriteria, authorizationSubjectsPredicate) .orElse(new BsonDocument()), CreateBsonVisitor.apply(thingV1Criteria), CreateBsonVisitor.apply(internalGrCriteria), CreateBsonVisitor.apply(internalAclCriteria))); }
private static Bson createTertiaryMatchStage(final Criteria filterCriteria, final Predicate authorizationSubjectsPredicate) { final Criteria thingV1Criteria = CRITERIA_FACTORY.fieldCriteria( new SimpleFieldExpressionImpl(FIELD_GRANTS), CRITERIA_FACTORY.eq(null)); // ACL and global-READ are checked at the beginning. // check policy entries here, let ACL and global-Read fall through. final Criteria internalGrCriteria = CRITERIA_FACTORY.existsCriteria( new SimpleFieldExpressionImpl(FIELD_INTERNAL_GLOBAL_READS)); final Criteria internalAclCriteria = CRITERIA_FACTORY.existsCriteria( new SimpleFieldExpressionImpl(FIELD_INTERNAL_ACL)); return match(or( CreatePolicyRestrictionBsonVisitor.apply(filterCriteria, authorizationSubjectsPredicate) .orElse(new BsonDocument()), CreateBsonVisitor.apply(thingV1Criteria), CreateBsonVisitor.apply(internalGrCriteria), CreateBsonVisitor.apply(internalAclCriteria))); }