@Override public Optional<JsonKey> get(final int level) { return jsonPointer.get(level); }
@Override public Optional<MessageDirection> getDirection() { return jsonPointer.getRoot() .flatMap(ImmutableMessagePath::jsonKeyToDirection) .map(Optional::of) .orElseGet(() -> jsonPointer.getRoot() .filter(FEATURES::equals) .flatMap(features -> jsonPointer.get(2)) .flatMap(ImmutableMessagePath::jsonKeyToDirection)); }
private boolean isOnReferencePointer(final JsonPointer evaluationPointer) { boolean result = true; final int referencePointerLevelCount = referencePointer.getLevelCount(); final int evaluationPointerLevelCount = evaluationPointer.getLevelCount(); int currentLevel = 0; while (result && currentLevel < referencePointerLevelCount && currentLevel < evaluationPointerLevelCount) { final JsonKey referencePointerCurrentLevelKey = referencePointer.get(currentLevel).orElse(null); result = evaluationPointer.get(currentLevel) .filter(k -> k.equals(referencePointerCurrentLevelKey)) .isPresent(); currentLevel++; } return result; }
@Override public Optional<MessageDirection> getDirection() { return jsonPointer.getRoot() .flatMap(ImmutableMessagePath::jsonKeyToDirection) .map(Optional::of) .orElseGet(() -> jsonPointer.getRoot() .filter(FEATURES::equals) .flatMap(features -> jsonPointer.get(2)) .flatMap(ImmutableMessagePath::jsonKeyToDirection)); }
@Override public Optional<JsonKey> get(final int level) { return jsonPointer.get(level); }
protected static String featureIdFrom(final Adaptable adaptable) { final JsonPointer path = adaptable.getPayload().getPath(); return path.get(1).orElseThrow(() -> UnknownPathException.newBuilder(path).build()).toString(); }
protected static String featureIdFrom(final Adaptable adaptable) { final JsonPointer path = adaptable.getPayload().getPath(); return path.get(1).orElseThrow(() -> UnknownPathException.newBuilder(path).build()).toString(); }
grantedResources, revokedResources, level, true); } else { resource.get(level).ifPresent(jsonKey -> policyTreeNode.getChild(jsonKey.toString()) .ifPresent(child -> traverseSubtreeForPermissionAccess(permission, resource, type, child, grantedResources, revokedResources, level + 1, true))); final Optional<JsonKey> jsonKeyOptional = resource.get(level); if (followingResource && jsonKeyOptional.isPresent()) { policyTreeNode.getChild(jsonKeyOptional.get().toString())