gov.nasa.arc.brahms.vm.data
Class VMArrayAccess

java.lang.Object
  extended by gov.nasa.arc.brahms.common.data.BrahmsObject
      extended by gov.nasa.arc.brahms.common.data.ArrayAccess
          extended by gov.nasa.arc.brahms.vm.data.VMArrayAccess
All Implemented Interfaces:
IAssignmentLhs, IExpression, gov.nasa.arc.brahms.common.IConstants, IVMAssignmentLhs, IVMExpression, java.io.Serializable

public class VMArrayAccess
extends ArrayAccess
implements IVMAssignmentLhs, IVMExpression

The VMArrayAccess is an ArrayAccess with extensions for use in the virtual machine. VMArrayAccess implements the IVMAssignmentLhs interface so that it can be the target of an assignment and the IVMExpression interface so that it can be evaluated as the right-hand side of an assignment

Version:
$Revision: 1.1 $ $Date: 2009/11/23 20:41:40 $ $Author: rnado $
Author:
Bob Nado
See Also:
ArrayAccess, Serialized Form

Field Summary
 
Fields inherited from interface gov.nasa.arc.brahms.common.IConstants
ABORT, ACTIVECLASS, ACTIVECONCEPT, ACTIVEINSTANCE, AGENT, ANONYMOUS, ANYAGENT, AREA, AREADEF, ASSIGNED, ATTRIBUTE, BASEAREADEF, BASECLASS, BASECONCEPTUALCLASS, BASEGROUP, BASELIBRARY, BOOLEAN, BROADCAST, BUILDING, BYTE, CCLOCK, CDATE, CHAR, CITY, CLASS, CLOCK, COLLECTALL, COMMUNICATE, COMPLETE, COMPOSITE, COMPUTER, CONCEPT, CONCEPTUALCLASS, CONCEPTUALCONCEPT, CONCEPTUALOBJECT, CONTINUE, COPY, CREATEAGENT, CREATEAREA, CREATEOBJECT, current, CURRENT, DATAFRAME, DATE, DB, DETECTABLE, DIV, DOUBLE, EMAIL, EMPTY_STRING, END, ENDACTIVITY, ENTAGENT, EQ, EXCEPTION, EXPR, FACE2FACE, FACTFRAME, FALSE, FAX, FLOAT, FOREACH, FORONE, G2, GE, GEOGRAPHYCONCEPT, GESTURE, GET, GROUP, GT, IMPASSE, INT, INVALID, JAVA, JAVA_TYPE, KNOWN_MODIFIER, KNOWNVAL_MODIFIER, LE, LOCAL, LONG, LT, MAP, MINUS, MOD, MOVE, MULT, NE, NEW, NONE, NOT_MODIFIER, NOWORK, O, OA, OBJECT, ONTOLOGY, PAGER, PARAMETER, PATH, PHONE, PLUS, PRIMITIVE, PRIVATE, PROAGENT, PROTECTED, PRSAGENT, PUBLIC, PUT, RECEIVE, RELATION, sACTIVECLASS, sACTIVECONCEPT, sACTIVEINSTANCE, sAGENT, sARCHIVE, sAREA, sAREADEF, sBOOLEAN, sBYTE, sBYTECODEEXT, sCHAR, sCLASS, sCOMPUTER, sCONCEPT, sCONCEPTUALCLASS, sCONCEPTUALCONCEPT, sCONCEPTUALOBJECT, sCOPY, sCURRENT, sDETECTABLE, sDOUBLE, sEMAIL, sEND, SEND, sFACE2FACE, sFAX, sFILEEXT, sFLOAT, sGEOGRAPHYCONCEPT, sGROUP, SHORT, SIMAGENT, sINT, sJAVA_TYPE, sLONG, sMAP, sNEW, sNONE, sNOWORK, sOBJECT, SOURCECODE, sPAGER, sPARAMETER, sPATH, sPHONE, sPRIVATE, sPROJECTEXT, sPROTECTED, sPUBLIC, sSHORT, sSTART, sSTRING, sSYMBOL, START, STRING, sUNKNOWN, sVOID, SYMBOL, TRUE, UDT, UML, UNASSIGNED, UNDEFINED, unknown, UNKNOWN, UNKNOWN_MODIFIER, V, VARIABLE, VOID, WHENEVER, WORKFRAME, WORLD, XML
 
Constructor Summary
VMArrayAccess()
          Constructor, creates a new VMArrayAccess for use in the virtual machine.
VMArrayAccess(java.lang.String file, int line)
          Constructor, creates a new VMArrayAccess instance which is located as Brahms source code in the given file at the given line number.
VMArrayAccess(VMOperand arrayRef, java.lang.String file, int line)
          Constructor, creates a new VMArrayAccess expression which is located as Brahms source code in the given file at the given line number.
 
Method Summary
 void assign(java.util.List<java.lang.Object> values, VMActiveInstanceCtx agent, VMFrameCtx frame, Type collectType)
          Assigns a list of values to the element resulting from evaluating the left-hand side expression.
 java.util.List<java.lang.Object> evaluate(VMActiveInstanceCtx agent, VMFrameCtx frame)
          Evaluates the array access expression to produce a list of values.
 
Methods inherited from class gov.nasa.arc.brahms.common.data.ArrayAccess
addIndexExpression, getArrayReference, getCollectType, getIndexExpressions, getParameters, getVariables, setArrayReference, setCollectType
 
Methods inherited from class gov.nasa.arc.brahms.common.data.BrahmsObject
delete, export, getFile, getID, getLine, getSerialNumber, isBCC, isDynamic, isLoaded, isResolved, setBCC, setDynamic, setFile, setID, setID, setLine, setLoaded, setResolved, setSerialNumber
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface gov.nasa.arc.brahms.common.data.IAssignmentLhs
export
 
Methods inherited from interface gov.nasa.arc.brahms.common.data.IExpression
export
 

Constructor Detail

VMArrayAccess

public VMArrayAccess()
Constructor, creates a new VMArrayAccess for use in the virtual machine.


VMArrayAccess

public VMArrayAccess(java.lang.String file,
                     int line)
Constructor, creates a new VMArrayAccess instance which is located as Brahms source code in the given file at the given line number.

Parameters:
file - the name of the file
line - the line number in the file

VMArrayAccess

public VMArrayAccess(VMOperand arrayRef,
                     java.lang.String file,
                     int line)
Constructor, creates a new VMArrayAccess expression which is located as Brahms source code in the given file at the given line number.

Parameters:
arrayRef - a VMOperand whose value is the Java array to be accessed
file - the name of the file
line - the line number in the file
Method Detail

evaluate

public java.util.List<java.lang.Object> evaluate(VMActiveInstanceCtx agent,
                                                 VMFrameCtx frame)
                                          throws gov.nasa.arc.brahms.common.exceptions.BrahmsException
Evaluates the array access expression to produce a list of values. Multiple values are possible as the expression may contain collectall variables with multiple values

Specified by:
evaluate in interface IVMExpression
Parameters:
agent - the VMActiveInstanceCtx for the agent performing the expression evaluation
frame - the VMFrameCtx for the frame that is being executed -- contains variable contexts for variables used in the evaluation
Returns:
List<Object> the list of values resulting from the expression evaluation
Throws:
gov.nasa.arc.brahms.common.exceptions.BrahmsException - if an error occurs during the expression evaluation

assign

public void assign(java.util.List<java.lang.Object> values,
                   VMActiveInstanceCtx agent,
                   VMFrameCtx frame,
                   Type collectType)
            throws gov.nasa.arc.brahms.common.exceptions.BrahmsException
Assigns a list of values to the element resulting from evaluating the left-hand side expression. the boolean collect parameter is true, the list of values is assigned as a single collection value to the left-hand side element. If the collect parameter is false and the left-hand side expression evaluates to an element that may be assigned multiple values, all of the values in the list are assigned; otherwise, only the first value in the list is assigned.

Specified by:
assign in interface IVMAssignmentLhs
Parameters:
values - the list of values to be assigned
agent - the VMActiveInstanceCtx for the agent performing the assignment operation
frame - the VMFrameCtx for the frame that is being executed
collectType - the collection element type if the values should be assigned as a collection to the left-hand side, else null
Throws:
gov.nasa.arc.brahms.common.exceptions.BrahmsException - if an error occurs during the assignment


Copyright © 1997-2012 All Rights Reserved.