summaryrefslogtreecommitdiffstats
path: root/vespajlib
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-12-16 12:38:02 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2016-12-16 12:38:02 +0100
commitfa74ca9f34400e27a86533268b6554357b8bdb60 (patch)
tree5c1f42578918ee3ba2c5835bd7cd44de275b2616 /vespajlib
parent218590ca3eaed89e96a05edbf8a84f69cf300b22 (diff)
Simplify
Diffstat (limited to 'vespajlib')
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java29
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java26
-rw-r--r--vespajlib/src/main/java/com/yahoo/tensor/Tensor.java29
3 files changed, 27 insertions, 57 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
index c9ea45e59d7..78e4b93b32e 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/IndexedTensor.java
@@ -182,29 +182,6 @@ public class IndexedTensor implements Tensor {
@Override
public abstract IndexedTensor build();
- // TODO: Can this be pushed up to Tensor.Builder?
- public class IndexedCellBuilder implements Tensor.Builder.CellBuilder {
-
- private final TensorAddress.Builder addressBuilder = new TensorAddress.Builder(IndexedTensor.Builder.this.type);
-
- @Override
- public IndexedCellBuilder label(String dimension, String label) {
- addressBuilder.add(dimension, label);
- return this;
- }
-
- @Override
- public IndexedCellBuilder label(String dimension, int label) {
- return label(dimension, String.valueOf(label));
- }
-
- @Override
- public Builder value(double cellValue) {
- return (Builder)Builder.this.cell(addressBuilder.build(), cellValue);
- }
-
- }
-
}
/** A bound builder can create the double array directly */
@@ -241,7 +218,7 @@ public class IndexedTensor implements Tensor {
@Override
public CellBuilder cell() {
- return new IndexedCellBuilder();
+ return new CellBuilder(type, this);
}
@Override
@@ -328,8 +305,8 @@ public class IndexedTensor implements Tensor {
}
@Override
- public IndexedCellBuilder cell() {
- return new IndexedCellBuilder();
+ public CellBuilder cell() {
+ return new CellBuilder(type, this);
}
@Override
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java b/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
index 243a8408f20..44451dc3f51 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/MappedTensor.java
@@ -56,8 +56,8 @@ public class MappedTensor implements Tensor {
this.type = type;
}
- public MappedCellBuilder cell() {
- return new MappedCellBuilder();
+ public CellBuilder cell() {
+ return new CellBuilder(type, this);
}
@Override
@@ -80,27 +80,5 @@ public class MappedTensor implements Tensor {
return new MappedTensor(type, cells.build());
}
- public class MappedCellBuilder implements Tensor.Builder.CellBuilder {
-
- private final TensorAddress.Builder addressBuilder = new TensorAddress.Builder(MappedTensor.Builder.this.type);
-
- @Override
- public MappedCellBuilder label(String dimension, String label) {
- addressBuilder.add(dimension, label);
- return this;
- }
-
- @Override
- public MappedCellBuilder label(String dimension, int label) {
- return label(dimension, String.valueOf(label));
- }
-
- @Override
- public Builder value(double cellValue) {
- return MappedTensor.Builder.this.cell(addressBuilder.build(), cellValue);
- }
-
- }
-
}
}
diff --git a/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java b/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java
index 1fab9939c1a..eea9f61c9df 100644
--- a/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java
+++ b/vespajlib/src/main/java/com/yahoo/tensor/Tensor.java
@@ -265,13 +265,28 @@ public interface Tensor {
Tensor build();
- interface CellBuilder {
-
- CellBuilder label(String dimension, String label);
-
- CellBuilder label(String dimension, int label);
-
- Builder value(double cellValue);
+ class CellBuilder {
+
+ private final TensorAddress.Builder addressBuilder;
+ private final Tensor.Builder tensorBuilder;
+
+ CellBuilder(TensorType type, Tensor.Builder tensorBuilder) {
+ addressBuilder = new TensorAddress.Builder(type);
+ this.tensorBuilder = tensorBuilder;
+ }
+
+ public CellBuilder label(String dimension, String label) {
+ addressBuilder.add(dimension, label);
+ return this;
+ }
+
+ public CellBuilder label(String dimension, int label) {
+ return label(dimension, String.valueOf(label));
+ }
+
+ public Builder value(double cellValue) {
+ return tensorBuilder.cell(addressBuilder.build(), cellValue);
+ }
}