/******************************************************************************* * Copyright (c) 2000, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jdt.internal.eval; import org.eclipse.jdt.core.compiler.CharOperation; import org.eclipse.jdt.internal.compiler.ClassFile; /** * This contains information about the installed variables such as their names, their types, the * name of the class that defines them, the binary of the class (to be passed to the name * environment when compiling the code snippet). */ public class VariablesInfo { GlobalVariable[] variables; int variableCount; char[] packageName; char[] className; ClassFile[] classFiles; /** * Creates a new variables info. The name of the global variable class is the simple name of * this class. The package name can be null if the variables have been defined in the default * package. */ public VariablesInfo(char[] packageName, char[] className, ClassFile[] classFiles, GlobalVariable[] variables, int variableCount) { this.packageName= packageName; this.className= className; this.classFiles= classFiles; this.variables= variables; this.variableCount= variableCount; } /** * Returns the index of the given variable. Returns -1 if not found. */ int indexOf(GlobalVariable var) { for (int i= 0; i < this.variableCount; i++) { if (var.equals(this.variables[i])) { return i; } } return -1; } /** * Returns the variable with the given name. Returns null if not found. */ GlobalVariable varNamed(char[] name) { GlobalVariable[] vars= this.variables; for (int i= 0; i < this.variableCount; i++) { GlobalVariable var= vars[i]; if (CharOperation.equals(name, var.name)) { return var; } } return null; } }