Skip to content

Commit 43e5af8

Browse files
authored
Pattern matching for instanceof. Wrapping up (#82768) (#82843)
1 parent 73379f0 commit 43e5af8

File tree

14 files changed

+23
-46
lines changed

14 files changed

+23
-46
lines changed

x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportFollowStatsAction.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,7 @@ protected void processTasks(final FollowStatsAction.StatsRequest request, final
103103
final Set<String> followerIndices = findFollowerIndicesFromShardFollowTasks(state, request.indices());
104104

105105
for (final Task task : taskManager.getTasks().values()) {
106-
if (task instanceof ShardFollowNodeTask) {
107-
final ShardFollowNodeTask shardFollowNodeTask = (ShardFollowNodeTask) task;
106+
if (task instanceof final ShardFollowNodeTask shardFollowNodeTask) {
108107
if (followerIndices.contains(shardFollowNodeTask.getFollowShardId().getIndexName())) {
109108
operation.accept(shardFollowNodeTask);
110109
}

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authc/support/mapper/expressiondsl/FieldExpression.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,8 +118,7 @@ public FieldValue(Object value) {
118118
}
119119

120120
private static CharacterRunAutomaton buildAutomaton(Object value) {
121-
if (value instanceof String) {
122-
final String str = (String) value;
121+
if (value instanceof final String str) {
123122
if (Regex.isSimpleMatchPattern(str) || Automatons.isLuceneRegex(str)) {
124123
return new CharacterRunAutomaton(Automatons.patterns(str));
125124
}

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/permission/ClusterPermission.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,7 @@ protected boolean extendedCheck(String action, TransportRequest request, Authent
248248

249249
@Override
250250
protected boolean doImplies(final ActionBasedPermissionCheck permissionCheck) {
251-
if (permissionCheck instanceof ActionRequestBasedPermissionCheck) {
252-
final ActionRequestBasedPermissionCheck otherCheck = (ActionRequestBasedPermissionCheck) permissionCheck;
251+
if (permissionCheck instanceof final ActionRequestBasedPermissionCheck otherCheck) {
253252
return this.clusterPrivilege.equals(otherCheck.clusterPrivilege);
254253
}
255254
return false;

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/privilege/ConfigurableClusterPrivileges.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,7 @@ public ManageApplicationPrivileges(Set<String> applicationNames) {
147147
this.applicationNames = Collections.unmodifiableSet(applicationNames);
148148
this.applicationPredicate = StringMatcher.of(applicationNames);
149149
this.requestPredicate = request -> {
150-
if (request instanceof ApplicationPrivilegesRequest) {
151-
final ApplicationPrivilegesRequest privRequest = (ApplicationPrivilegesRequest) request;
150+
if (request instanceof final ApplicationPrivilegesRequest privRequest) {
152151
final Collection<String> requestApplicationNames = privRequest.getApplicationNames();
153152
return requestApplicationNames.isEmpty()
154153
? this.applicationNames.contains("*")

x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/security/authz/privilege/ManageOwnApiKeyClusterPrivilege.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,15 @@ private ManageOwnClusterPermissionCheck() {
6060
protected boolean extendedCheck(String action, TransportRequest request, Authentication authentication) {
6161
if (request instanceof CreateApiKeyRequest) {
6262
return true;
63-
} else if (request instanceof GetApiKeyRequest) {
64-
final GetApiKeyRequest getApiKeyRequest = (GetApiKeyRequest) request;
63+
} else if (request instanceof final GetApiKeyRequest getApiKeyRequest) {
6564
return checkIfUserIsOwnerOfApiKeys(
6665
authentication,
6766
getApiKeyRequest.getApiKeyId(),
6867
getApiKeyRequest.getUserName(),
6968
getApiKeyRequest.getRealmName(),
7069
getApiKeyRequest.ownedByAuthenticatedUser()
7170
);
72-
} else if (request instanceof InvalidateApiKeyRequest) {
73-
final InvalidateApiKeyRequest invalidateApiKeyRequest = (InvalidateApiKeyRequest) request;
71+
} else if (request instanceof final InvalidateApiKeyRequest invalidateApiKeyRequest) {
7472
final String[] apiKeyIds = invalidateApiKeyRequest.getIds();
7573
if (apiKeyIds == null) {
7674
return checkIfUserIsOwnerOfApiKeys(
@@ -92,8 +90,7 @@ protected boolean extendedCheck(String action, TransportRequest request, Authent
9290
)
9391
);
9492
}
95-
} else if (request instanceof QueryApiKeyRequest) {
96-
final QueryApiKeyRequest queryApiKeyRequest = (QueryApiKeyRequest) request;
93+
} else if (request instanceof final QueryApiKeyRequest queryApiKeyRequest) {
9794
return queryApiKeyRequest.isFilterForCurrentUser();
9895
}
9996
throw new IllegalArgumentException(

x-pack/plugin/core/src/test/java/org/elasticsearch/test/TestMatchers.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ public void describeTo(Description description) {
4747

4848
@Override
4949
public boolean matches(Object actual) {
50-
if (actual instanceof Throwable) {
51-
final Throwable throwable = (Throwable) actual;
50+
if (actual instanceof final Throwable throwable) {
5251
return messageMatcher.matches(throwable.getMessage());
5352
} else {
5453
return false;

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authc/ApiKeyService.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1275,8 +1275,7 @@ public void onFailure(Exception e) {
12751275
*/
12761276
private <E extends Throwable> E traceLog(String action, String identifier, E exception) {
12771277
if (logger.isTraceEnabled()) {
1278-
if (exception instanceof ElasticsearchException) {
1279-
final ElasticsearchException esEx = (ElasticsearchException) exception;
1278+
if (exception instanceof final ElasticsearchException esEx) {
12801279
final Object detail = esEx.getHeader("error_description");
12811280
if (detail != null) {
12821281
logger.trace(() -> new ParameterizedMessage("Failure in [{}] for id [{}] - [{}]", action, identifier, detail), esEx);
@@ -1295,8 +1294,7 @@ private <E extends Throwable> E traceLog(String action, String identifier, E exc
12951294
*/
12961295
private <E extends Throwable> E traceLog(String action, E exception) {
12971296
if (logger.isTraceEnabled()) {
1298-
if (exception instanceof ElasticsearchException) {
1299-
final ElasticsearchException esEx = (ElasticsearchException) exception;
1297+
if (exception instanceof final ElasticsearchException esEx) {
13001298
final Object detail = esEx.getHeader("error_description");
13011299
if (detail != null) {
13021300
logger.trace(() -> new ParameterizedMessage("Failure in [{}] - [{}]", action, detail), esEx);

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authc/AuthenticatorChain.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,8 @@ private BiConsumer<Authenticator, ActionListener<AuthenticationResult<Authentica
168168
// Because (1) unlike security errors which are intentionally obscure, non-security errors are clear
169169
// about their nature so that no additional information is needed; (2) Non-security errors may
170170
// not inherit ElasticsearchException and thus does not have the addMetadata method.
171-
if (e instanceof ElasticsearchSecurityException) {
171+
if (e instanceof final ElasticsearchSecurityException ese) {
172172
// Attach any other unsuccessful messages to the final error
173-
final ElasticsearchSecurityException ese = (ElasticsearchSecurityException) e;
174173
if (false == context.getUnsuccessfulMessages().isEmpty()) {
175174
addMetadata(context, ese);
176175
}

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authc/TokenService.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2192,8 +2192,7 @@ private static ElasticsearchSecurityException unableToPerformAction(@Nullable Th
21922192
*/
21932193
private <E extends Throwable> E traceLog(String action, String identifier, E exception) {
21942194
if (logger.isTraceEnabled()) {
2195-
if (exception instanceof ElasticsearchException) {
2196-
final ElasticsearchException esEx = (ElasticsearchException) exception;
2195+
if (exception instanceof final ElasticsearchException esEx) {
21972196
final Object detail = esEx.getHeader("error_description");
21982197
if (detail != null) {
21992198
logger.trace(() -> new ParameterizedMessage("Failure in [{}] for id [{}] - [{}]", action, identifier, detail), esEx);
@@ -2212,8 +2211,7 @@ private <E extends Throwable> E traceLog(String action, String identifier, E exc
22122211
*/
22132212
private <E extends Throwable> E traceLog(String action, E exception) {
22142213
if (logger.isTraceEnabled()) {
2215-
if (exception instanceof ElasticsearchException) {
2216-
final ElasticsearchException esEx = (ElasticsearchException) exception;
2214+
if (exception instanceof final ElasticsearchException esEx) {
22172215
final Object detail = esEx.getHeader("error_description");
22182216
if (detail != null) {
22192217
logger.trace(() -> new ParameterizedMessage("Failure in [{}] - [{}]", action, detail), esEx);

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authz/IndicesAndAliasesResolver.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,7 @@ ResolvedIndices resolveIndicesAndAliases(
199199
assert indicesRequest.indices() == null || indicesRequest.indices().length == 0
200200
: "indices are: " + Arrays.toString(indicesRequest.indices()); // Arrays.toString() can handle null values - all good
201201
resolvedIndicesBuilder.addLocal(getPutMappingIndexOrAlias((PutMappingRequest) indicesRequest, authorizedIndices, metadata));
202-
} else if (indicesRequest instanceof IndicesRequest.Replaceable) {
203-
final IndicesRequest.Replaceable replaceable = (IndicesRequest.Replaceable) indicesRequest;
202+
} else if (indicesRequest instanceof final IndicesRequest.Replaceable replaceable) {
204203
final IndicesOptions indicesOptions = indicesRequest.indicesOptions();
205204
final boolean replaceWildcards = indicesOptions.expandWildcardsOpen() || indicesOptions.expandWildcardsClosed();
206205

x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/support/ApiKeyBoolQueryBuilder.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,7 @@ public static ApiKeyBoolQueryBuilder build(QueryBuilder queryBuilder, @Nullable
7373
}
7474

7575
private static QueryBuilder doProcess(QueryBuilder qb) {
76-
if (qb instanceof BoolQueryBuilder) {
77-
final BoolQueryBuilder query = (BoolQueryBuilder) qb;
76+
if (qb instanceof final BoolQueryBuilder query) {
7877
final BoolQueryBuilder newQuery = QueryBuilders.boolQuery()
7978
.minimumShouldMatch(query.minimumShouldMatch())
8079
.adjustPureNegative(query.adjustPureNegative());
@@ -87,29 +86,24 @@ private static QueryBuilder doProcess(QueryBuilder qb) {
8786
return qb;
8887
} else if (qb instanceof IdsQueryBuilder) {
8988
return qb;
90-
} else if (qb instanceof TermQueryBuilder) {
91-
final TermQueryBuilder query = (TermQueryBuilder) qb;
89+
} else if (qb instanceof final TermQueryBuilder query) {
9290
final String translatedFieldName = ApiKeyFieldNameTranslators.translate(query.fieldName());
9391
return QueryBuilders.termQuery(translatedFieldName, query.value()).caseInsensitive(query.caseInsensitive());
94-
} else if (qb instanceof TermsQueryBuilder) {
95-
final TermsQueryBuilder query = (TermsQueryBuilder) qb;
92+
} else if (qb instanceof final TermsQueryBuilder query) {
9693
if (query.termsLookup() != null) {
9794
throw new IllegalArgumentException("terms query with terms lookup is not supported for API Key query");
9895
}
9996
final String translatedFieldName = ApiKeyFieldNameTranslators.translate(query.fieldName());
10097
return QueryBuilders.termsQuery(translatedFieldName, query.getValues());
101-
} else if (qb instanceof PrefixQueryBuilder) {
102-
final PrefixQueryBuilder query = (PrefixQueryBuilder) qb;
98+
} else if (qb instanceof final PrefixQueryBuilder query) {
10399
final String translatedFieldName = ApiKeyFieldNameTranslators.translate(query.fieldName());
104100
return QueryBuilders.prefixQuery(translatedFieldName, query.value()).caseInsensitive(query.caseInsensitive());
105-
} else if (qb instanceof WildcardQueryBuilder) {
106-
final WildcardQueryBuilder query = (WildcardQueryBuilder) qb;
101+
} else if (qb instanceof final WildcardQueryBuilder query) {
107102
final String translatedFieldName = ApiKeyFieldNameTranslators.translate(query.fieldName());
108103
return QueryBuilders.wildcardQuery(translatedFieldName, query.value())
109104
.caseInsensitive(query.caseInsensitive())
110105
.rewrite(query.rewrite());
111-
} else if (qb instanceof RangeQueryBuilder) {
112-
final RangeQueryBuilder query = (RangeQueryBuilder) qb;
106+
} else if (qb instanceof final RangeQueryBuilder query) {
113107
final String translatedFieldName = ApiKeyFieldNameTranslators.translate(query.fieldName());
114108
if (query.relation() != null) {
115109
throw new IllegalArgumentException("range query with relation is not supported for API Key query");

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/RealmSettingsTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,7 @@ private MockSecureSettings normaliseSecureSettingPrefix(String prefix, SecureSet
282282
if (settings == null) {
283283
return null;
284284
}
285-
if (settings instanceof MockSecureSettings) {
286-
final MockSecureSettings source = (MockSecureSettings) settings;
285+
if (settings instanceof final MockSecureSettings source) {
287286
final MockSecureSettings target = new MockSecureSettings();
288287
for (String key : settings.getSettingNames()) {
289288
target.setString(prefix + key, source.getString(key).toString());

x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/service/IndexServiceAccountTokenStoreTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,8 +321,7 @@ public void testFindTokensForException() {
321321
public void testDeleteToken() {
322322
final AtomicBoolean cacheCleared = new AtomicBoolean(false);
323323
responseProviderHolder.set((r, l) -> {
324-
if (r instanceof DeleteRequest) {
325-
final DeleteRequest dr = (DeleteRequest) r;
324+
if (r instanceof final DeleteRequest dr) {
326325
final boolean found = dr.id().equals(SERVICE_ACCOUNT_TOKEN_DOC_TYPE + "-elastic/fleet-server/token1");
327326
l.onResponse(
328327
new DeleteResponse(

x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/transforms/pivot/TransformAggregations.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,8 +233,7 @@ public static Tuple<Map<String, String>, Map<String, String>> getAggregationInpu
233233
);
234234
}
235235

236-
if (agg instanceof ValuesSourceAggregationBuilder) {
237-
ValuesSourceAggregationBuilder<?> valueSourceAggregation = (ValuesSourceAggregationBuilder<?>) agg;
236+
if (agg instanceof ValuesSourceAggregationBuilder<?> valueSourceAggregation) {
238237
return new Tuple<>(
239238
Collections.singletonMap(valueSourceAggregation.getName(), valueSourceAggregation.field()),
240239
Collections.singletonMap(valueSourceAggregation.getName(), valueSourceAggregation.getType())

0 commit comments

Comments
 (0)