KEYCLOAK-15184: Use static inner class where possible
This commit is contained in:
parent
6e713b5044
commit
269a72d672
38 changed files with 41 additions and 41 deletions
|
@ -232,7 +232,7 @@ public class PolicyEnforcer {
|
||||||
return paths;
|
return paths;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PathConfigMatcher extends PathMatcher<PathConfig> {
|
public static class PathConfigMatcher extends PathMatcher<PathConfig> {
|
||||||
|
|
||||||
private final Map<String, PathConfig> paths;
|
private final Map<String, PathConfig> paths;
|
||||||
private final PathCache pathCache;
|
private final PathCache pathCache;
|
||||||
|
|
|
@ -136,7 +136,7 @@ public abstract class AbstractKeycloakJettyAuthenticator extends LoginAuthentica
|
||||||
return new DefaultUserIdentity(theSubject, principal, theRoles);
|
return new DefaultUserIdentity(theSubject, principal, theRoles);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class DummyLoginService implements LoginService {
|
private static class DummyLoginService implements LoginService {
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -149,7 +149,7 @@ public abstract class AbstractSamlAuthenticator extends LoginAuthenticator {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class DummyLoginService implements LoginService {
|
private static class DummyLoginService implements LoginService {
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -104,7 +104,7 @@ public class LDAPIdentityStoreRegistry {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private class LDAPIdentityStoreContext {
|
private static class LDAPIdentityStoreContext {
|
||||||
|
|
||||||
private LDAPIdentityStoreContext(LDAPConfig config, LDAPIdentityStore store) {
|
private LDAPIdentityStoreContext(LDAPConfig config, LDAPIdentityStore store) {
|
||||||
this.config = config;
|
this.config = config;
|
||||||
|
|
|
@ -146,7 +146,7 @@ public class InfinispanPublicKeyStorageProviderFactory implements PublicKeyStora
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SessionAndKeyHolder {
|
private static class SessionAndKeyHolder {
|
||||||
private final KeycloakSession session;
|
private final KeycloakSession session;
|
||||||
private final ArrayList<String> cacheKeys;
|
private final ArrayList<String> cacheKeys;
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class SessionEventsSenderTransaction extends AbstractKeycloakTransaction
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private class DCEventContext {
|
private static class DCEventContext {
|
||||||
private final ClusterProvider.DCNotify dcNotify;
|
private final ClusterProvider.DCNotify dcNotify;
|
||||||
private final SessionClusterEvent event;
|
private final SessionClusterEvent event;
|
||||||
|
|
||||||
|
|
|
@ -179,7 +179,7 @@ public class RemoteCacheInvoker {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private class RemoteCacheContext {
|
private static class RemoteCacheContext {
|
||||||
|
|
||||||
private final RemoteCache remoteCache;
|
private final RemoteCache remoteCache;
|
||||||
private final MaxIdleTimeLoader maxIdleTimeLoader;
|
private final MaxIdleTimeLoader maxIdleTimeLoader;
|
||||||
|
|
|
@ -160,7 +160,7 @@ public class AuthnContextType implements Serializable {
|
||||||
* ref="saml:AuthnContextDecl"/>
|
* ref="saml:AuthnContextDecl"/>
|
||||||
* <element ref="saml:AuthnContextDeclRef"/> </choice> </sequence>
|
* <element ref="saml:AuthnContextDeclRef"/> </choice> </sequence>
|
||||||
*/
|
*/
|
||||||
public class AuthnContextTypeSequence implements Serializable {
|
public static class AuthnContextTypeSequence implements Serializable {
|
||||||
|
|
||||||
private AuthnContextClassRefType classRef;
|
private AuthnContextClassRefType classRef;
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ public class CompositeKeyLocator implements KeyLocator, Iterable<Key> {
|
||||||
return Collections.unmodifiableCollection(res);
|
return Collections.unmodifiableCollection(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class JointKeyIterator implements Iterable<Key> {
|
private static class JointKeyIterator implements Iterable<Key> {
|
||||||
|
|
||||||
// based on http://stackoverflow.com/a/34126154/6930869
|
// based on http://stackoverflow.com/a/34126154/6930869
|
||||||
private final Iterator<Iterable<Key>> iterablesIterator;
|
private final Iterator<Iterable<Key>> iterablesIterator;
|
||||||
|
|
|
@ -435,7 +435,7 @@ public class TransformerUtil {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class CustomHolder {
|
private static class CustomHolder {
|
||||||
public Document doc;
|
public Document doc;
|
||||||
|
|
||||||
public boolean encounteredTextNode = false;
|
public boolean encounteredTextNode = false;
|
||||||
|
|
|
@ -117,7 +117,7 @@ public class SAML2Response {
|
||||||
String authContextDeclRef = JBossSAMLURIConstants.AC_PASSWORD_PROTECTED_TRANSPORT.get();
|
String authContextDeclRef = JBossSAMLURIConstants.AC_PASSWORD_PROTECTED_TRANSPORT.get();
|
||||||
act.addAuthenticatingAuthority(URI.create(authContextDeclRef));
|
act.addAuthenticatingAuthority(URI.create(authContextDeclRef));
|
||||||
|
|
||||||
AuthnContextType.AuthnContextTypeSequence sequence = act.new AuthnContextTypeSequence();
|
AuthnContextType.AuthnContextTypeSequence sequence = new AuthnContextType.AuthnContextTypeSequence();
|
||||||
sequence.setClassRef(new AuthnContextClassRefType(JBossSAMLURIConstants.AC_PASSWORD.getUri()));
|
sequence.setClassRef(new AuthnContextClassRefType(JBossSAMLURIConstants.AC_PASSWORD.getUri()));
|
||||||
act.setSequence(sequence);
|
act.setSequence(sequence);
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class SAMLAuthnContextParser extends AbstractStaxSamlAssertionParser<Auth
|
||||||
case AUTHN_CONTEXT_DECL:
|
case AUTHN_CONTEXT_DECL:
|
||||||
Element dom = StaxParserUtil.getDOMElement(xmlEventReader);
|
Element dom = StaxParserUtil.getDOMElement(xmlEventReader);
|
||||||
AuthnContextDeclType authnContextDecl = new AuthnContextDeclType(dom);
|
AuthnContextDeclType authnContextDecl = new AuthnContextDeclType(dom);
|
||||||
authnContextSequence = target.getSequence() != null ? target.getSequence() : target.new AuthnContextTypeSequence();
|
authnContextSequence = target.getSequence() != null ? target.getSequence() : new AuthnContextType.AuthnContextTypeSequence();
|
||||||
authnContextSequence.setAuthnContextDecl(authnContextDecl);
|
authnContextSequence.setAuthnContextDecl(authnContextDecl);
|
||||||
target.setSequence(authnContextSequence);
|
target.setSequence(authnContextSequence);
|
||||||
break;
|
break;
|
||||||
|
@ -75,7 +75,7 @@ public class SAMLAuthnContextParser extends AbstractStaxSamlAssertionParser<Auth
|
||||||
text = StaxParserUtil.getElementText(xmlEventReader);
|
text = StaxParserUtil.getElementText(xmlEventReader);
|
||||||
AuthnContextClassRefType authnContextClassRef = new AuthnContextClassRefType(URI.create(text));
|
AuthnContextClassRefType authnContextClassRef = new AuthnContextClassRefType(URI.create(text));
|
||||||
|
|
||||||
authnContextSequence = target.getSequence() != null ? target.getSequence() : target.new AuthnContextTypeSequence();
|
authnContextSequence = target.getSequence() != null ? target.getSequence() : new AuthnContextType.AuthnContextTypeSequence();
|
||||||
authnContextSequence.setClassRef(authnContextClassRef);
|
authnContextSequence.setClassRef(authnContextClassRef);
|
||||||
|
|
||||||
target.setSequence(authnContextSequence);
|
target.setSequence(authnContextSequence);
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class StatementUtil {
|
||||||
AuthnContextType authnContext = new AuthnContextType();
|
AuthnContextType authnContext = new AuthnContextType();
|
||||||
AuthnContextClassRefType authnContextClassRef = new AuthnContextClassRefType(URI.create(authnContextClassRefValue));
|
AuthnContextClassRefType authnContextClassRef = new AuthnContextClassRefType(URI.create(authnContextClassRefValue));
|
||||||
|
|
||||||
AuthnContextType.AuthnContextTypeSequence sequence = (authnContext).new AuthnContextTypeSequence();
|
AuthnContextType.AuthnContextTypeSequence sequence = new AuthnContextType.AuthnContextTypeSequence();
|
||||||
sequence.setClassRef(authnContextClassRef);
|
sequence.setClassRef(authnContextClassRef);
|
||||||
authnContext.setSequence(sequence);
|
authnContext.setSequence(sequence);
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@ public class TimeBasedOTP extends HmacOTP {
|
||||||
this.clock.setCalendar(calendar);
|
this.clock.setCalendar(calendar);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class Clock {
|
private static class Clock {
|
||||||
|
|
||||||
private final int interval;
|
private final int interval;
|
||||||
private Calendar calendar;
|
private Calendar calendar;
|
||||||
|
|
|
@ -308,7 +308,7 @@ public class PolicyEvaluationService {
|
||||||
return new CloseableKeycloakIdentity(accessToken, keycloakSession, userSession);
|
return new CloseableKeycloakIdentity(accessToken, keycloakSession, userSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class EvaluationDecisionCollector extends DecisionPermissionCollector {
|
public static class EvaluationDecisionCollector extends DecisionPermissionCollector {
|
||||||
|
|
||||||
public EvaluationDecisionCollector(AuthorizationProvider authorizationProvider, ResourceServer resourceServer, AuthorizationRequest request) {
|
public EvaluationDecisionCollector(AuthorizationProvider authorizationProvider, ResourceServer resourceServer, AuthorizationRequest request) {
|
||||||
super(authorizationProvider, resourceServer, request);
|
super(authorizationProvider, resourceServer, request);
|
||||||
|
|
|
@ -102,8 +102,8 @@ public class RPTIntrospectionProvider extends AccessTokenIntrospectionProvider {
|
||||||
|
|
||||||
//todo: we need to avoid creating this class when processing responses. The only reason for that is that
|
//todo: we need to avoid creating this class when processing responses. The only reason for that is that
|
||||||
// UMA defines "resource_id" and "resource_scopes" claims but we use "rsid" and "scopes".
|
// UMA defines "resource_id" and "resource_scopes" claims but we use "rsid" and "scopes".
|
||||||
// To avoid breaking backward compatiblity we are just responding with all these claims.
|
// To avoid breaking backward compatibility we are just responding with all these claims.
|
||||||
public class UmaPermissionRepresentation extends Permission {
|
public static class UmaPermissionRepresentation extends Permission {
|
||||||
|
|
||||||
public UmaPermissionRepresentation(Permission permission) {
|
public UmaPermissionRepresentation(Permission permission) {
|
||||||
setResourceId(permission.getResourceId());
|
setResourceId(permission.getResourceId());
|
||||||
|
|
|
@ -270,7 +270,7 @@ public class FreeMarkerEmailTemplateProvider implements EmailTemplateProvider {
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected class EmailTemplate {
|
protected static class EmailTemplate {
|
||||||
|
|
||||||
private String subject;
|
private String subject;
|
||||||
private String textBody;
|
private String textBody;
|
||||||
|
|
|
@ -93,7 +93,7 @@ public class AccountFederatedIdentityBean {
|
||||||
return removeLinkPossible;
|
return removeLinkPossible;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class FederatedIdentityEntry implements OrderedModel {
|
public static class FederatedIdentityEntry implements OrderedModel {
|
||||||
|
|
||||||
private FederatedIdentityModel federatedIdentityModel;
|
private FederatedIdentityModel federatedIdentityModel;
|
||||||
private final String providerId;
|
private final String providerId;
|
||||||
|
|
|
@ -268,7 +268,7 @@ public class DefaultKeyManager implements KeyManager {
|
||||||
return providers;
|
return providers;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ProviderComparator implements Comparator<ComponentModel> {
|
private static class ProviderComparator implements Comparator<ComponentModel> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compare(ComponentModel o1, ComponentModel o2) {
|
public int compare(ComponentModel o1, ComponentModel o2) {
|
||||||
|
|
|
@ -1025,7 +1025,7 @@ public class TokenManager {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RefreshResult {
|
public static class RefreshResult {
|
||||||
|
|
||||||
private final AccessTokenResponse response;
|
private final AccessTokenResponse response;
|
||||||
private final boolean offlineToken;
|
private final boolean offlineToken;
|
||||||
|
|
|
@ -1351,7 +1351,7 @@ public class TokenEndpoint {
|
||||||
return codeVerifierEncoded;
|
return codeVerifierEncoded;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class TokenExchangeSamlProtocol extends SamlProtocol {
|
private static class TokenExchangeSamlProtocol extends SamlProtocol {
|
||||||
final SamlClient samlClient;
|
final SamlClient samlClient;
|
||||||
|
|
||||||
TokenExchangeSamlProtocol(SamlClient samlClient) {
|
TokenExchangeSamlProtocol(SamlClient samlClient) {
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class UserStorageSyncManager {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private class Holder {
|
private static class Holder {
|
||||||
ExecutionResult<SynchronizationResult> result;
|
ExecutionResult<SynchronizationResult> result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ public class FreeMarkerUtil {
|
||||||
return cfg.getTemplate(templateName, "UTF-8");
|
return cfg.getTemplate(templateName, "UTF-8");
|
||||||
}
|
}
|
||||||
|
|
||||||
class ThemeTemplateLoader extends URLTemplateLoader {
|
static class ThemeTemplateLoader extends URLTemplateLoader {
|
||||||
|
|
||||||
private Theme theme;
|
private Theme theme;
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ public class FileTruststoreProviderFactory implements TruststoreProviderFactory
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private class TruststoreCertificatesLoader {
|
private static class TruststoreCertificatesLoader {
|
||||||
|
|
||||||
private Map<X500Principal, X509Certificate> trustedRootCerts = new HashMap<>();
|
private Map<X500Principal, X509Certificate> trustedRootCerts = new HashMap<>();
|
||||||
private Map<X500Principal, X509Certificate> intermediateCerts = new HashMap<>();
|
private Map<X500Principal, X509Certificate> intermediateCerts = new HashMap<>();
|
||||||
|
|
|
@ -91,7 +91,7 @@ public class DefaultClientValidationProvider implements ClientValidationProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ValidationException extends Exception {
|
static class ValidationException extends Exception {
|
||||||
|
|
||||||
public ValidationException(String message) {
|
public ValidationException(String message) {
|
||||||
super(message, null, false, false);
|
super(message, null, false, false);
|
||||||
|
|
|
@ -89,7 +89,7 @@ public class TestPolicyProviderFactory implements PolicyProviderFactory {
|
||||||
return "test";
|
return "test";
|
||||||
}
|
}
|
||||||
|
|
||||||
private class TestPolicyProvider implements PolicyProvider {
|
private static class TestPolicyProvider implements PolicyProvider {
|
||||||
|
|
||||||
private final AuthorizationProvider authorization;
|
private final AuthorizationProvider authorization;
|
||||||
|
|
||||||
|
|
|
@ -378,7 +378,7 @@ public class BackwardsCompatibilityUserStorage implements UserLookupProvider, Us
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class MyUser {
|
static class MyUser {
|
||||||
|
|
||||||
private String username;
|
private String username;
|
||||||
private CredentialModel hashedPassword;
|
private CredentialModel hashedPassword;
|
||||||
|
|
|
@ -315,7 +315,7 @@ public class SimpleUndertowLoadBalancer {
|
||||||
private static final AttachmentKey<Integer> REMAINING_RETRY_ATTEMPTS = AttachmentKey.create(Integer.class);
|
private static final AttachmentKey<Integer> REMAINING_RETRY_ATTEMPTS = AttachmentKey.create(Integer.class);
|
||||||
|
|
||||||
|
|
||||||
private class ProxyCallbackDelegate implements ProxyCallback<ProxyConnection> {
|
private static class ProxyCallbackDelegate implements ProxyCallback<ProxyConnection> {
|
||||||
|
|
||||||
private final ProxyClient proxyClient;
|
private final ProxyClient proxyClient;
|
||||||
private final ProxyCallback<ProxyConnection> delegate;
|
private final ProxyCallback<ProxyConnection> delegate;
|
||||||
|
|
|
@ -43,7 +43,7 @@ public class TestClassProvider {
|
||||||
server.stop();
|
server.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ClassPathResourceManager implements ResourceManager {
|
public static class ClassPathResourceManager implements ResourceManager {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Resource getResource(String className) {
|
public Resource getResource(String className) {
|
||||||
|
|
|
@ -157,7 +157,7 @@ public class LoginForm extends Form {
|
||||||
return getTextFromElement(rememberMeLabel);
|
return getTextFromElement(rememberMeLabel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TotpSetupForm extends Form {
|
public static class TotpSetupForm extends Form {
|
||||||
@FindBy(id = "totp")
|
@FindBy(id = "totp")
|
||||||
private WebElement totpInputField;
|
private WebElement totpInputField;
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ public class AdminConsoleRealm extends AdminConsoleRealmsRoot {
|
||||||
// return realmsResource().realm(getConsoleRealm());
|
// return realmsResource().realm(getConsoleRealm());
|
||||||
// }
|
// }
|
||||||
|
|
||||||
public class ConfigureMenu {
|
public static class ConfigureMenu {
|
||||||
|
|
||||||
@FindBy(partialLinkText = "Realm Settings")
|
@FindBy(partialLinkText = "Realm Settings")
|
||||||
private WebElement realmSettingsLink;
|
private WebElement realmSettingsLink;
|
||||||
|
@ -111,7 +111,7 @@ public class AdminConsoleRealm extends AdminConsoleRealmsRoot {
|
||||||
return manageMenu;
|
return manageMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ManageMenu {
|
public static class ManageMenu {
|
||||||
|
|
||||||
@FindBy(partialLinkText = "Users")
|
@FindBy(partialLinkText = "Users")
|
||||||
private WebElement usersLink;
|
private WebElement usersLink;
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class AdminEvents extends Events {
|
||||||
return table;
|
return table;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AdminEventsTable extends DataTable {
|
public static class AdminEventsTable extends DataTable {
|
||||||
|
|
||||||
@FindBy(xpath = "//button[text()[contains(.,'Filter')]]")
|
@FindBy(xpath = "//button[text()[contains(.,'Filter')]]")
|
||||||
private WebElement filterButton;
|
private WebElement filterButton;
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class Config extends Events {
|
||||||
return form;
|
return form;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ConfigForm extends Form {
|
public static class ConfigForm extends Form {
|
||||||
@FindBy(id = "s2id_autogen1")
|
@FindBy(id = "s2id_autogen1")
|
||||||
private WebElement eventListenersInput;
|
private WebElement eventListenersInput;
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class LoginEvents extends Events {
|
||||||
return table;
|
return table;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LoginEventsTable extends DataTable {
|
public static class LoginEventsTable extends DataTable {
|
||||||
|
|
||||||
@FindBy(xpath = "//button[text()[contains(.,'Filter')]]")
|
@FindBy(xpath = "//button[text()[contains(.,'Filter')]]")
|
||||||
private WebElement filterButton;
|
private WebElement filterButton;
|
||||||
|
|
|
@ -101,7 +101,7 @@ public class KeycloakWebDriverConfigurator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class KcBrowserCapabilities implements BrowserCapabilities {
|
public static class KcBrowserCapabilities implements BrowserCapabilities {
|
||||||
private Capabilities capabilitiesToAdd;
|
private Capabilities capabilitiesToAdd;
|
||||||
private BrowserCapabilities origBrowserCapabilities;
|
private BrowserCapabilities origBrowserCapabilities;
|
||||||
|
|
||||||
|
|
|
@ -263,7 +263,7 @@ public class KerberosEmbeddedServer extends LDAPEmbeddedServer {
|
||||||
*
|
*
|
||||||
* @author Dominik Pospisil <dpospisi@redhat.com>
|
* @author Dominik Pospisil <dpospisi@redhat.com>
|
||||||
*/
|
*/
|
||||||
class NoReplayKdcServer extends KdcServer {
|
static class NoReplayKdcServer extends KdcServer {
|
||||||
|
|
||||||
NoReplayKdcServer(KerberosConfig kdcConfig) {
|
NoReplayKdcServer(KerberosConfig kdcConfig) {
|
||||||
super(kdcConfig);
|
super(kdcConfig);
|
||||||
|
|
|
@ -100,7 +100,7 @@ public class LoadPersistentSessionsCommand extends AbstractCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private class MyWorker implements Runnable {
|
private static class MyWorker implements Runnable {
|
||||||
|
|
||||||
private final int workerId;
|
private final int workerId;
|
||||||
private final int lastCreatedOn;
|
private final int lastCreatedOn;
|
||||||
|
|
|
@ -50,7 +50,7 @@ import org.apache.directory.server.core.api.interceptor.context.SearchOperationC
|
||||||
*/
|
*/
|
||||||
public class RangedAttributeInterceptor extends BaseInterceptor {
|
public class RangedAttributeInterceptor extends BaseInterceptor {
|
||||||
|
|
||||||
private class RangedEntryFilteringCursor implements EntryFilteringCursor {
|
private static class RangedEntryFilteringCursor implements EntryFilteringCursor {
|
||||||
|
|
||||||
private final EntryFilteringCursor c;
|
private final EntryFilteringCursor c;
|
||||||
private final String name;
|
private final String name;
|
||||||
|
|
Loading…
Reference in a new issue