diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-12-16 12:38:02 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-12-16 12:38:02 +0100 |
commit | fa74ca9f34400e27a86533268b6554357b8bdb60 (patch) | |
tree | 5c1f42578918ee3ba2c5835bd7cd44de275b2616 /vespajlib | |
parent | 218590ca3eaed89e96a05edbf8a84f69cf300b22 (diff) |
Simplify
Diffstat (limited to 'vespajlib')
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); + } } |