/* * Copyright (C) 2014 Indeed Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ package com.indeed.imhotep.ez; /** * @author jwolfe */ public class SingleStatReference implements StatReference { final int depth; private String stringRep; private final EZImhotepSession session; boolean valid = true; SingleStatReference(int depth, String stringRep, EZImhotepSession session) { this.depth = depth; this.stringRep = stringRep; this.session = session; } @Override public String toString() { if (valid) { return "reference("+stringRep+")"; } else { return "invalid stat reference"; } } @Override public double[] getGroupStats() { Stats.requireValid(this); long[] values = session.getGroupStats(depth); double[] realValues = new double[values.length]; for(int i = 0; i < values.length; i++) { realValues[i] = values[i]; } return realValues; } @Override public double getValue(long[] stats) { return (double)stats[depth]; } @Override public boolean isValid() { return valid; } @Override public void invalidate() { valid = false; } }