From b63faa22aa45c84c9ce5c2dbbdc8bd9b14bdafdc Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Tue, 17 Jan 2017 20:26:43 +0300 Subject: [PATCH] [groovy] deprecate GroovyPsiManager.findClassWithCache(String, GlobalSearchScope) --- .../groovy/annotator/intentions/QuickfixUtil.java | 10 +++------- .../GrUnresolvedAccessChecker.java | 5 ++--- .../groovy/geb/GebBrowserMemberContributor.java | 10 +++------- .../src/org/jetbrains/plugins/groovy/geb/GebUtil.java | 9 ++++----- .../groovy/lang/psi/impl/GrLiteralClassType.java | 4 ++-- .../plugins/groovy/lang/psi/impl/GroovyPsiManager.java | 3 ++- .../impl/statements/blocks/GrClosableBlockImpl.java | 4 ++-- .../path/GrClosureDelegateTypeCalculator.java | 10 +++------- .../impl/synthetic/GrLightClassReferenceElement.java | 6 +++--- .../plugins/groovy/lang/psi/util/GdkMethodUtil.java | 5 ++--- .../groovy/lang/resolve/GdkMethodDslProvider.java | 6 +++--- 11 files changed, 29 insertions(+), 43 deletions(-) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/annotator/intentions/QuickfixUtil.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/annotator/intentions/QuickfixUtil.java index f0e4e1ffe192..be22c2d72872 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/annotator/intentions/QuickfixUtil.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/annotator/intentions/QuickfixUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,10 +15,7 @@ */ package org.jetbrains.plugins.groovy.annotator.intentions; -import com.intellij.psi.CommonClassNames; -import com.intellij.psi.PsiClass; -import com.intellij.psi.PsiClassType; -import com.intellij.psi.PsiType; +import com.intellij.psi.*; import com.intellij.psi.util.PsiTypesUtil; import com.intellij.util.ArrayUtil; import org.jetbrains.annotations.Nullable; @@ -29,7 +26,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.arguments.GrArgument import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression; import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyNamesUtil; -import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil; import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil; @@ -53,7 +49,7 @@ public class QuickfixUtil { PsiType type = PsiImplUtil.getQualifierType(refExpr); if (type == null && compileStatic) { - return GroovyPsiManager.getInstance(refExpr.getProject()).findClassWithCache(CommonClassNames.JAVA_LANG_OBJECT, refExpr.getResolveScope()); + return JavaPsiFacade.getInstance(refExpr.getProject()).findClass(CommonClassNames.JAVA_LANG_OBJECT, refExpr.getResolveScope()); } if (ResolveUtil.resolvesToClass(refExpr.getQualifierExpression())) { diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/untypedUnresolvedAccess/GrUnresolvedAccessChecker.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/untypedUnresolvedAccess/GrUnresolvedAccessChecker.java index 3d2d0604fbc9..dd31e7609d48 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/untypedUnresolvedAccess/GrUnresolvedAccessChecker.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/codeInspection/untypedUnresolvedAccess/GrUnresolvedAccessChecker.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -63,7 +63,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.toplevel.imports.GrImportStatem import org.jetbrains.plugins.groovy.lang.psi.api.toplevel.packaging.GrPackageDefinition; import org.jetbrains.plugins.groovy.lang.psi.api.types.GrCodeReferenceElement; import org.jetbrains.plugins.groovy.lang.psi.api.util.GrVariableDeclarationOwner; -import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil; import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GroovyScriptClass; @@ -348,7 +347,7 @@ public class GrUnresolvedAccessChecker { @Nullable private static PsiMethod findPatternMethod(@NotNull GrReferenceExpression ref) { - PsiClass groovyObject = GroovyPsiManager.getInstance(ref.getProject()).findClassWithCache(GroovyCommonClassNames.GROOVY_OBJECT, + PsiClass groovyObject = JavaPsiFacade.getInstance(ref.getProject()).findClass(GroovyCommonClassNames.GROOVY_OBJECT, ref.getResolveScope()); if (groovyObject == null) return null; diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/geb/GebBrowserMemberContributor.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/geb/GebBrowserMemberContributor.java index 7e91f0b7ea6c..551a64a604ae 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/geb/GebBrowserMemberContributor.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/geb/GebBrowserMemberContributor.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,13 +15,9 @@ */ package org.jetbrains.plugins.groovy.geb; -import com.intellij.psi.PsiClass; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiType; -import com.intellij.psi.ResolveState; +import com.intellij.psi.*; import com.intellij.psi.scope.PsiScopeProcessor; import org.jetbrains.annotations.NotNull; -import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; import org.jetbrains.plugins.groovy.lang.resolve.NonCodeMembersContributor; /** @@ -40,7 +36,7 @@ public class GebBrowserMemberContributor extends NonCodeMembersContributor { @NotNull PsiScopeProcessor processor, @NotNull PsiElement place, @NotNull ResolveState state) { - PsiClass pageClass = GroovyPsiManager.getInstance(aClass.getProject()).findClassWithCache("geb.Page", place.getResolveScope()); + PsiClass pageClass = JavaPsiFacade.getInstance(aClass.getProject()).findClass("geb.Page", place.getResolveScope()); if (pageClass != null) { if (!pageClass.processDeclarations(processor, state, null, place)) return; diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/geb/GebUtil.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/geb/GebUtil.java index 10e306d7d380..79cbbe11b38e 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/geb/GebUtil.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/geb/GebUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,7 +25,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrCall; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrMethodCall; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression; -import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrLightField; import org.jetbrains.plugins.groovy.lang.psi.util.PsiUtil; import org.jetbrains.plugins.groovy.util.LightCacheKey; @@ -44,13 +43,13 @@ public class GebUtil { public static boolean contributeMembersInsideTest(PsiScopeProcessor processor, PsiElement place, ResolveState state) { - GroovyPsiManager groovyPsiManager = GroovyPsiManager.getInstance(place.getProject()); + JavaPsiFacade facade = JavaPsiFacade.getInstance(place.getProject()); - PsiClass browserClass = groovyPsiManager.findClassWithCache("geb.Browser", place.getResolveScope()); + PsiClass browserClass = facade.findClass("geb.Browser", place.getResolveScope()); if (browserClass != null) { if (!browserClass.processDeclarations(processor, state, null, place)) return false; - PsiClass pageClass = groovyPsiManager.findClassWithCache("geb.Page", place.getResolveScope()); + PsiClass pageClass = facade.findClass("geb.Page", place.getResolveScope()); if (pageClass != null) { if (!pageClass.processDeclarations(processor, state, null, place)) return false; diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GrLiteralClassType.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GrLiteralClassType.java index ea82caa68288..79b32a8c556c 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GrLiteralClassType.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GrLiteralClassType.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -153,7 +153,7 @@ public abstract class GrLiteralClassType extends PsiClassType { @Override @Nullable public PsiClass resolve() { - return myGroovyPsiManager.findClassWithCache(getJavaClassName(), getResolveScope()); + return myFacade.findClass(getJavaClassName(), getResolveScope()); } @Override diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyPsiManager.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyPsiManager.java index cb2505105715..b79e3654f66c 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyPsiManager.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/GroovyPsiManager.java @@ -81,7 +81,7 @@ public class GroovyPsiManager { public PsiClassType createTypeByFQClassName(@NotNull String fqName, @NotNull GlobalSearchScope resolveScope) { if (ourPopularClasses.contains(fqName)) { - PsiClass result = findClassWithCache(fqName, resolveScope); + PsiClass result = JavaPsiFacade.getInstance(myProject).findClass(fqName, resolveScope); if (result != null) { return JavaPsiFacade.getElementFactory(myProject).createType(result); } @@ -119,6 +119,7 @@ public class GroovyPsiManager { } @Nullable + @Deprecated public PsiClass findClassWithCache(@NotNull String fqName, @NotNull GlobalSearchScope resolveScope) { return JavaPsiFacade.getInstance(myProject).findClass(fqName, resolveScope); } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java index cc116ddc0950..7960943e77f3 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/blocks/GrClosableBlockImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -156,7 +156,7 @@ public class GrClosableBlockImpl extends GrBlockImpl implements GrClosableBlock @NotNull ResolveState state, @Nullable PsiElement lastParent, @NotNull PsiElement place) { - final PsiClass closureClass = GroovyPsiManager.getInstance(getProject()).findClassWithCache(GroovyCommonClassNames.GROOVY_LANG_CLOSURE, getResolveScope()); + final PsiClass closureClass = JavaPsiFacade.getInstance(getProject()).findClass(GroovyCommonClassNames.GROOVY_LANG_CLOSURE, getResolveScope()); if (closureClass == null) return true; return ResolveUtil.processClassDeclarations(closureClass, processor, state.put(ClassHint.RESOLVE_CONTEXT, this), lastParent, place); diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrClosureDelegateTypeCalculator.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrClosureDelegateTypeCalculator.java index a23d0b531ea4..599afae7037d 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrClosureDelegateTypeCalculator.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/path/GrClosureDelegateTypeCalculator.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,17 +15,13 @@ */ package org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.path; -import com.intellij.psi.PsiClass; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiMethod; -import com.intellij.psi.PsiType; +import com.intellij.psi.*; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.lang.psi.api.statements.blocks.GrClosableBlock; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression; -import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; import org.jetbrains.plugins.groovy.lang.psi.typeEnhancers.GrExpressionTypeCalculator; import org.jetbrains.plugins.groovy.lang.psi.util.GroovyCommonClassNames; import org.jetbrains.plugins.groovy.lang.resolve.delegatesTo.DelegatesToInfo; @@ -49,7 +45,7 @@ public class GrClosureDelegateTypeCalculator extends GrExpressionTypeCalculator final GrClosableBlock closure = PsiTreeUtil.getParentOfType(expression, GrClosableBlock.class); if (closure == null) return null; - final PsiClass closureClass = GroovyPsiManager.getInstance(expression.getProject()).findClassWithCache( + final PsiClass closureClass = JavaPsiFacade.getInstance(expression.getProject()).findClass( GroovyCommonClassNames.GROOVY_LANG_CLOSURE, expression.getResolveScope() ); if (closureClass == null || !closureClass.equals(method.getContainingClass())) return null; diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightClassReferenceElement.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightClassReferenceElement.java index 9973b27e7cc9..ec439115c683 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightClassReferenceElement.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/synthetic/GrLightClassReferenceElement.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2016 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package org.jetbrains.plugins.groovy.lang.psi.impl.synthetic; import com.intellij.openapi.util.TextRange; +import com.intellij.psi.JavaPsiFacade; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiType; @@ -29,7 +30,6 @@ import org.jetbrains.plugins.groovy.lang.psi.GroovyElementVisitor; import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult; import org.jetbrains.plugins.groovy.lang.psi.api.types.GrCodeReferenceElement; import org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeArgumentList; -import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyResolveResultImpl; /** @@ -60,7 +60,7 @@ public class GrLightClassReferenceElement extends LightElement implements GrCode @NotNull @Override public GroovyResolveResult[] multiResolve(boolean incompleteCode) { - PsiClass clazz = GroovyPsiManager.getInstance(getProject()).findClassWithCache(myClassName, myContext.getResolveScope()); + PsiClass clazz = JavaPsiFacade.getInstance(getProject()).findClass(myClassName, myContext.getResolveScope()); return clazz == null ? GroovyResolveResult.EMPTY_ARRAY : new GroovyResolveResult[]{new GroovyResolveResultImpl(clazz, true)}; } diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/util/GdkMethodUtil.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/util/GdkMethodUtil.java index c69a4a8c2366..4dc8dfefa089 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/util/GdkMethodUtil.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/util/GdkMethodUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -49,7 +49,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.types.GrClosureParameter; import org.jetbrains.plugins.groovy.lang.psi.api.util.GrStatementOwner; import org.jetbrains.plugins.groovy.lang.psi.impl.GrClosureType; import org.jetbrains.plugins.groovy.lang.psi.impl.GrTupleType; -import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil; import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil; import org.jetbrains.plugins.groovy.lang.psi.impl.synthetic.GrGdkMethodImpl; @@ -311,7 +310,7 @@ public class GdkMethodUtil { final String name = signatures.second; final List methods = ContainerUtil.newArrayList(); - final PsiClass closure = GroovyPsiManager.getInstance(statement.getProject()).findClassWithCache(GroovyCommonClassNames.GROOVY_LANG_CLOSURE, statement.getResolveScope()); + final PsiClass closure = JavaPsiFacade.getInstance(statement.getProject()).findClass(GroovyCommonClassNames.GROOVY_LANG_CLOSURE, statement.getResolveScope()); if (closure == null) return Result.create(null, PsiModificationTracker.MODIFICATION_COUNT); signatures.first.accept(new GrSignatureVisitor() { diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GdkMethodDslProvider.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GdkMethodDslProvider.java index 7eb483509cf9..49baa7757a4d 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GdkMethodDslProvider.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/GdkMethodDslProvider.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2015 JetBrains s.r.o. + * Copyright 2000-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,6 +16,7 @@ package org.jetbrains.plugins.groovy.lang.resolve; import com.intellij.openapi.util.VolatileNotNullLazyValue; +import com.intellij.psi.JavaPsiFacade; import com.intellij.psi.PsiClass; import com.intellij.psi.ResolveState; import com.intellij.psi.scope.ElementClassHint; @@ -27,7 +28,6 @@ import org.jetbrains.plugins.groovy.dsl.GdslMembersHolderConsumer; import org.jetbrains.plugins.groovy.dsl.GroovyClassDescriptor; import org.jetbrains.plugins.groovy.dsl.dsltop.GdslMembersProvider; import org.jetbrains.plugins.groovy.dsl.holders.CustomMembersHolder; -import org.jetbrains.plugins.groovy.lang.psi.impl.GroovyPsiManager; import org.jetbrains.plugins.groovy.lang.resolve.processors.GroovyResolverProcessor; /** @@ -46,7 +46,7 @@ public class GdkMethodDslProvider implements GdslMembersProvider { private static void processCategoryMethods(final String className, final GdslMembersHolderConsumer consumer, final boolean isStatic) { final GlobalSearchScope scope = consumer.getResolveScope(); - final PsiClass categoryClass = GroovyPsiManager.getInstance(consumer.getProject()).findClassWithCache(className, scope); + final PsiClass categoryClass = JavaPsiFacade.getInstance(consumer.getProject()).findClass(className, scope); if (categoryClass == null) { return; }