/********************************************************************** Copyright (c) 2000, 2002 IBM Corp. and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html Contributors: IBM Corporation - Initial implementation Vicente Fernando - www.alfersoft.com.ar Christian Perkonig - cperkonig@gmx.at **********************************************************************/ package net.sourceforge.phpdt.internal.debug.core.model; import java.util.Iterator; import java.util.Vector; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.model.IDebugTarget; import org.eclipse.debug.core.model.IValue; import org.eclipse.debug.core.model.IVariable; public class PHPValue implements IValue { final static String[] PEV_NAMES={"undefined","long","double","string","array", "object","boolean","resource","reference","soft reference"}; final static int PEVT_UNKNOWN =0; final static int PEVT_LONG = 1; final static int PEVT_DOUBLE=2; final static int PEVT_STRING=3; final static int PEVT_ARRAY=4; final static int PEVT_OBJECT=5; final static int PEVT_BOOLEAN=6; final static int PEVT_RESOURCE=7; final static int PEVT_REF=8; final static int PEVT_SOFTREF=9; private int fValueType; private boolean hasChildren; private String fValueString; private Vector fVariables; private PHPStackFrame fStackFrame; PHPValue() { this(null,"",PEVT_UNKNOWN,null); } PHPValue(PHPStackFrame frame,String value,int fValueType,Vector subitems) { this.fValueType=fValueType; this.fValueString=value; this.fStackFrame=frame; if (subitems !=null) this.fVariables=new Vector(subitems); else this.fVariables = new Vector(); } Vector addVariable(Vector item) { if (item!=null) this.fVariables.addAll(item); return this.fVariables; } public void setParent(PHPVariable parent) { if (!fVariables.isEmpty()) { Iterator iter=fVariables.iterator(); while (iter.hasNext()) { ((PHPVariable)iter.next()).setParent(parent); } } } /** * @see org.eclipse.debug.core.model.IValue#getReferenceTypeName() */ public String getReferenceTypeName(){ return PEV_NAMES[fValueType]; } public int getReferenceType(){ return fValueType; } public int setReferenceType(int type){ return fValueType=type; } /** * @see org.eclipse.debug.core.model.IValue#getfValueString() */ public String getValueString() { return fValueString; } /** * @see org.eclipse.debug.core.model.IValue#isAllocated() */ public boolean isAllocated() throws DebugException { return false; } /** * @see org.eclipse.debug.core.model.IValue#getVariables() */ public IVariable[] getVariables() { return (PHPVariable[])fVariables.toArray(new PHPVariable[fVariables.size()]); // return (IVariable[])fVariables.toArray(); } /** * @see org.eclipse.debug.core.model.IValue#hasVariables() */ public boolean hasVariables() throws DebugException { return (!fVariables.isEmpty()); } /** * @see org.eclipse.debug.core.model.IDebugElement#getModelIdentifier() */ public String getModelIdentifier() { // TODO Auto-generated method stub return null; } /** * @see org.eclipse.debug.core.model.IDebugElement#getDebugTarget() */ public IDebugTarget getDebugTarget() { return fStackFrame.getDebugTarget(); } /** * @see org.eclipse.debug.core.model.IDebugElement#getLaunch() */ public ILaunch getLaunch() { return getDebugTarget().getLaunch(); } /** * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class) */ public Object getAdapter(Class adapter) { return null; } }