#2318 - Refactor internals - final classes in el packages

This commit is contained in:
rbygrave committed 2021-08-17 19:15:35 +12:00
1 parent 285a94e5fe
commit 55587b12aa
10 files changed
+22 -62

No files matched your search

@@ -6,7 +6,7 @@ package io.ebeaninternal.server.el;
* @author Roland Praml, FOCONIS AG
*
*/
public class ElComparatorNoop<T> implements ElComparator<T> {
public final class ElComparatorNoop<T> implements ElComparator<T> {
private static final long serialVersionUID = -9060871822183687180L;
@@ -12,9 +12,7 @@ public final class ElComparatorProperty<T> implements Comparator<T>, ElComparato
private static final long serialVersionUID = -2735738237263956073L;
private final ElPropertyValue elGetValue;
private final int nullOrder;
private final int asc;
public ElComparatorProperty(ElPropertyValue elGetValue, boolean ascending, boolean nullsHigh) {
@@ -14,11 +14,8 @@ import java.util.regex.Pattern;
public final class ElFilter<T> implements Filter<T> {
private final BeanDescriptor<T> beanDescriptor;
private final ArrayList<ElMatcher<T>> matches = new ArrayList<>();
private int maxRows;
private String sortByClause;
public ElFilter(BeanDescriptor<T> beanDescriptor) {
@@ -8,12 +8,12 @@ import java.util.regex.Pattern;
/**
* Contains the various ElMatcher implementations.
*/
class ElMatchBuilder {
final class ElMatchBuilder {
/**
* Case insensitive equals.
*/
static class RegularExpr<T> implements ElMatcher<T> {
static final class RegularExpr<T> implements ElMatcher<T> {
final ElPropertyValue elGetValue;
final String value;
@@ -49,7 +49,7 @@ class ElMatchBuilder {
public abstract boolean isMatch(T bean);
}
static class Ieq<T> extends BaseString<T> {
static final class Ieq<T> extends BaseString<T> {
Ieq(ElPropertyValue elGetValue, String value) {
super(elGetValue, value);
}
@@ -64,7 +64,7 @@ class ElMatchBuilder {
/**
* Case insensitive starts with matcher.
*/
static class IStartsWith<T> implements ElMatcher<T> {
static final class IStartsWith<T> implements ElMatcher<T> {
final ElPropertyValue elGetValue;
final CharMatch charMatch;
@@ -85,7 +85,7 @@ class ElMatchBuilder {
/**
* Case insensitive ends with matcher.
*/
static class IEndsWith<T> implements ElMatcher<T> {
static final class IEndsWith<T> implements ElMatcher<T> {
final ElPropertyValue elGetValue;
final CharMatch charMatch;
@@ -103,7 +103,7 @@ class ElMatchBuilder {
}
}
static class StartsWith<T> extends BaseString<T> {
static final class StartsWith<T> extends BaseString<T> {
StartsWith(ElPropertyValue elGetValue, String value) {
super(elGetValue, value);
}
@@ -115,7 +115,7 @@ class ElMatchBuilder {
}
}
static class EndsWith<T> extends BaseString<T> {
static final class EndsWith<T> extends BaseString<T> {
EndsWith(ElPropertyValue elGetValue, String value) {
super(elGetValue, value);
}
@@ -127,7 +127,7 @@ class ElMatchBuilder {
}
}
static class IsNull<T> implements ElMatcher<T> {
static final class IsNull<T> implements ElMatcher<T> {
final ElPropertyValue elGetValue;
@@ -141,7 +141,7 @@ class ElMatchBuilder {
}
}
static class IsNotNull<T> implements ElMatcher<T> {
static final class IsNotNull<T> implements ElMatcher<T> {
final ElPropertyValue elGetValue;
@@ -170,7 +170,7 @@ class ElMatchBuilder {
public abstract boolean isMatch(T value);
}
static class InSet<T> implements ElMatcher<T> {
static final class InSet<T> implements ElMatcher<T> {
final Set<?> set;
final ElPropertyValue elGetValue;
@@ -183,7 +183,6 @@ class ElMatchBuilder {
@Override
public boolean isMatch(T bean) {
Object value = elGetValue.pathGet(bean);
return value != null && set.contains(value);
}
@@ -192,7 +191,7 @@ class ElMatchBuilder {
/**
* Equal To.
*/
static class Eq<T> extends Base<T> {
static final class Eq<T> extends Base<T> {
public Eq(Object filterValue, ElComparator<T> comparator) {
super(filterValue, comparator);
@@ -207,7 +206,7 @@ class ElMatchBuilder {
/**
* Not Equal To.
*/
static class Ne<T> extends Base<T> {
static final class Ne<T> extends Base<T> {
public Ne(Object filterValue, ElComparator<T> comparator) {
super(filterValue, comparator);
@@ -222,7 +221,7 @@ class ElMatchBuilder {
/**
* Between.
*/
static class Between<T> implements ElMatcher<T> {
static final class Between<T> implements ElMatcher<T> {
final Object min;
final Object max;
@@ -236,7 +235,6 @@ class ElMatchBuilder {
@Override
public boolean isMatch(T value) {
return (comparator.compareValue(min, value) <= 0
&& comparator.compareValue(max, value) >= 0);
}
@@ -245,7 +243,7 @@ class ElMatchBuilder {
/**
* Greater Than.
*/
static class Gt<T> extends Base<T> {
static final class Gt<T> extends Base<T> {
Gt(Object filterValue, ElComparator<T> comparator) {
super(filterValue, comparator);
}
@@ -259,7 +257,7 @@ class ElMatchBuilder {
/**
* Greater Than or Equal To.
*/
static class Ge<T> extends Base<T> {
static final class Ge<T> extends Base<T> {
Ge(Object filterValue, ElComparator<T> comparator) {
super(filterValue, comparator);
}
@@ -273,7 +271,7 @@ class ElMatchBuilder {
/**
* Less Than or Equal To.
*/
static class Le<T> extends Base<T> {
static final class Le<T> extends Base<T> {
Le(Object filterValue, ElComparator<T> comparator) {
super(filterValue, comparator);
}
@@ -287,7 +285,7 @@ class ElMatchBuilder {
/**
* Less Than.
*/
static class Lt<T> extends Base<T> {
static final class Lt<T> extends Base<T> {
Lt(Object filterValue, ElComparator<T> comparator) {
super(filterValue, comparator);
}
@@ -22,30 +22,22 @@ import java.util.Arrays;
* no further processing of the chain occurs.
* </p>
*/
public class ElPropertyChain implements ElPropertyValue {
public final class ElPropertyChain implements ElPropertyValue {
private final String prefix;
private final String placeHolder;
private final String placeHolderEncrypted;
private final String name;
private final String expression;
private final boolean containsMany;
private final ElPropertyValue[] chain;
private final boolean assocId;
private final int last;
private final BeanProperty lastBeanProperty;
private final ScalarType<?> scalarType;
private final ElPropertyValue lastElPropertyValue;
public ElPropertyChain(boolean containsMany, boolean embedded, String expression, ElPropertyValue[] chain) {
this.containsMany = containsMany;
this.chain = chain;
this.expression = expression;
@@ -119,15 +111,12 @@ public class ElPropertyChain implements ElPropertyValue {
if (!expression.startsWith(sinceProperty)) {
return containsMany;
}
int i = 1 + SplitName.count(sinceProperty);
for (; i < chain.length; i++) {
if (chain[i].getBeanProperty().containsMany()) {
return true;
}
}
return false;
}
@@ -281,7 +270,6 @@ public class ElPropertyChain implements ElPropertyValue {
@Override
public Object pathGetNested(Object bean) {
Object prevBean = bean;
for (int i = 0; i < last; i++) {
// always return non null prevBean
@@ -293,7 +281,6 @@ public class ElPropertyChain implements ElPropertyValue {
@Override
public void pathSet(Object bean, Object value) {
Object prevBean = bean;
for (int i = 0; i < last; i++) {
prevBean = chain[i].pathGetNested(prevBean);
@@ -310,5 +297,4 @@ public class ElPropertyChain implements ElPropertyValue {
}
}
}
@@ -13,14 +13,11 @@ import java.util.List;
* order.customer.name.
* </p>
*/
public class ElPropertyChainBuilder {
public final class ElPropertyChainBuilder {
private final String expression;
private final List<ElPropertyValue> chain = new ArrayList<>();
private boolean embedded;
private boolean containsMany;
/**
@@ -15,9 +15,7 @@ public final class DaemonScheduleThreadPool extends ScheduledThreadPoolExecutor
private static final Logger logger = LoggerFactory.getLogger(DaemonScheduleThreadPool.class);
private final ReentrantLock lock = new ReentrantLock();
private final String namePrefix;
private final int shutdownWaitSeconds;
/**
@@ -13,10 +13,9 @@ import java.util.concurrent.atomic.AtomicInteger;
* on shutdown or register with the JVM shutdown hook to perform a nice shutdown
* of the daemon threads etc.
*/
public class DaemonThreadFactory implements ThreadFactory {
public final class DaemonThreadFactory implements ThreadFactory {
private final AtomicInteger threadNumber = new AtomicInteger(1);
private final String namePrefix;
public DaemonThreadFactory(String namePrefix) {
@@ -13,7 +13,7 @@ import java.util.concurrent.TimeUnit;
/**
* The default implementation of the BackgroundExecutor.
*/
public class DefaultBackgroundExecutor implements SpiBackgroundExecutor {
public final class DefaultBackgroundExecutor implements SpiBackgroundExecutor {
private final ScheduledExecutorService executor;
@@ -19,15 +19,11 @@ import java.util.Map;
public class DefaultReadAuditLogger implements ReadAuditLogger {
private static final Logger appLogger = LoggerFactory.getLogger(DefaultReadAuditLogger.class);
private static final Logger queryLogger = LoggerFactory.getLogger("io.ebean.ReadAuditQuery");
private static final Logger auditLogger = LoggerFactory.getLogger("io.ebean.ReadAudit");
protected final JsonFactory jsonFactory = new JsonFactory();
protected int defaultQueryBuffer = 500;
protected int defaultReadBuffer = 150;
/**
@@ -37,7 +33,6 @@ public class DefaultReadAuditLogger implements ReadAuditLogger {
public void queryPlan(ReadAuditQueryPlan queryPlan) {
StringWriter writer = new StringWriter(defaultQueryBuffer);
try (JsonGenerator gen = jsonFactory.createGenerator(writer)) {
gen.writeStartObject();
String beanType = queryPlan.getBeanType();
if (beanType != null) {
@@ -53,9 +48,7 @@ public class DefaultReadAuditLogger implements ReadAuditLogger {
}
gen.writeEndObject();
gen.flush();
queryLogger.info(writer.toString());
} catch (IOException e) {
appLogger.error("Error writing Read audit event", e);
}
@@ -66,7 +59,6 @@ public class DefaultReadAuditLogger implements ReadAuditLogger {
*/
@Override
public void auditBean(ReadEvent beanEvent) {
writeEvent(beanEvent);
}
@@ -79,14 +71,11 @@ public class DefaultReadAuditLogger implements ReadAuditLogger {
}
protected void writeEvent(ReadEvent event) {
try {
StringWriter writer = new StringWriter(defaultReadBuffer);
JsonGenerator gen = jsonFactory.createGenerator(writer);
writeDetails(gen, event);
auditLogger.info(writer.toString());
} catch (IOException e) {
appLogger.error("Error writing Read audit event", e);
}
@@ -96,7 +85,6 @@ public class DefaultReadAuditLogger implements ReadAuditLogger {
* Write the details for the read bean or read many beans event.
*/
protected void writeDetails(JsonGenerator gen, ReadEvent event) throws IOException {
gen.writeStartObject();
String source = event.getSource();
if (source != null) {
@@ -130,7 +118,6 @@ public class DefaultReadAuditLogger implements ReadAuditLogger {
gen.writeFieldName("ids");
EJson.writeCollection(event.getIds(), gen);
}
gen.writeEndObject();
gen.flush();
gen.close();