Supports should always resolve to a singleton.
Change-Id: I9888465d7fe89fbf9c2e75aa4e7a807ea16ed0e0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
*/
@Beta
public abstract class AbstractYangXPathMathSupport<N extends YangNumberExpr> implements YangXPathMathSupport {
+ private static final long serialVersionUID = 1L;
+
private final Class<N> numberClass;
protected AbstractYangXPathMathSupport(final Class<N> numberClass) {
* @return Evaluation result
*/
protected abstract YangExpr doEvaluate(YangBinaryOperator operator, N left, N right);
+
+ protected abstract Object readResolve();
}
final class BigDecimalXPathMathSupport extends AbstractYangXPathMathSupport<BigDecimalNumberExpr> {
static final BigDecimalXPathMathSupport INSTANCE = new BigDecimalXPathMathSupport();
+ private static final long serialVersionUID = 1L;
private static final BigDecimalNumberExpr ZERO = BigDecimalNumberExpr.of(BigDecimal.ZERO);
private static final BigDecimalNumberExpr ONE = BigDecimalNumberExpr.of(BigDecimal.ONE);
private static final BigDecimalNumberExpr TEN = BigDecimalNumberExpr.of(BigDecimal.TEN);
return BigDecimalNumberExpr.of(result);
}
+
+ @Override
+ protected Object readResolve() {
+ return INSTANCE;
+ }
}
final class DoubleXPathMathSupport extends AbstractYangXPathMathSupport<DoubleNumberExpr> {
static final DoubleXPathMathSupport INSTANCE = new DoubleXPathMathSupport();
+ private static final long serialVersionUID = 1L;
+
private DoubleXPathMathSupport() {
super(DoubleNumberExpr.class);
}
return DoubleNumberExpr.of(result);
}
+
+ @Override
+ protected Object readResolve() {
+ return INSTANCE;
+ }
}
package org.opendaylight.yangtools.yang.xpath.api;
import com.google.common.annotations.Beta;
+import java.io.Serializable;
import java.util.Optional;
/**
* @author Robert Varga
*/
@Beta
-public interface YangXPathMathSupport {
+public interface YangXPathMathSupport extends Serializable {
/**
* Create a {@link YangNumberExpr} backed by specified string.
*