/* * @(#)VariablesVector.java 0.0.0 99/08/03 * * Copyright (c) 1999 by Willie Wheeler. All rights reserved. */ package stats; import java.util.*; /** * @version 0.0.0 08/03/99 * @author Willie Wheeler */ public class VariablesVector extends Vector { public VariablesVector(Collection c) { super(c); } public String getVariableNamesAsString(int[] variableIndices) { String name = ((Variable)get(variableIndices[0])).getName(); StringBuffer buffer = new StringBuffer(name); for (int j = 1; j < variableIndices.length; j++) { name = ((Variable)get(variableIndices[j])).getName(); buffer.append(" x " + name); } return buffer.toString(); } public String getStateAsString(int[] state, boolean includeVariableNames, String valueDelimiter) { // Return empty string if the state is null. if (state == null) { return ""; } // Look for variables with specified values, and put the values in a // vector. Vector values = new Vector(); for (int j = 0; j < state.length; j++) { if (state[j] != -1) { TextVariable variable = (TextVariable)get(j); StringBuffer buffer = new StringBuffer(); if (includeVariableNames) { buffer.append(variable.getName() + "="); } buffer.append(variable.getValue(state[j])); values.add(buffer.toString()); } } // Return empty string if no variables have specified values. if (values.isEmpty()) { return ""; } // At least one variable has a specified value, so put all the values // in a string and return it. StringBuffer buffer = new StringBuffer((String)values.get(0)); for (int j = 1; j < values.size(); j++) { buffer.append(valueDelimiter + (String)values.get(j)); } return buffer.toString(); } public String[] getStatesAsStrings(int[][] states, boolean includeVariableNames, String valueDelimiter) { String[] stateNames = new String[states.length]; for (int i = 0; i < states.length; i++) { stateNames[i] = getStateAsString(states[i], includeVariableNames, valueDelimiter); } return stateNames; } }