package water.fvec; import water.*; /** * A simple wrapper over another Vec. Transforms either data values or rows. */ abstract class WrappedVec extends Vec { /** A key for underlying vector which contains values which are transformed by this vector. */ final Key<Vec> _masterVecKey; /** Cached instances of underlying vector. */ transient Vec _masterVec; public WrappedVec(Key<Vec> key, int rowLayout, Key<Vec> masterVecKey ) { this(key, rowLayout, null, masterVecKey); } public WrappedVec(Key<Vec> key, int rowLayout, String[] domain, Key<Vec> masterVecKey) { super(key, rowLayout, domain); _masterVecKey = masterVecKey; } public Vec masterVec() { return _masterVec != null ? _masterVec : (_masterVec = _masterVecKey.get()); } /** Map from chunk-index to Chunk. These wrappers are making custom Chunks */ public abstract Chunk chunkForChunkIdx(int cidx); }