コード例 #1
0
 /**
  * @see parser.IDLParserVisitor#visit(ASTparam_dcl, Object)
  * @param data the active buildinfo for the current scope
  * @return an instance of ParameterSpec, containing the relevant information
  */
 public Object visit(ASTparam_dcl node, Object data) {
     // determine direction ...
     ParameterSpec.ParameterDirection direction = ((ASTparam_attribute) node.jjtGetChild(0)).getParamDir();
     // determine name and type
     TypeContainer paramType = (TypeContainer)node.jjtGetChild(1).jjtAccept(this, data);
     if (paramType == null) {
         throw new InvalidIdlException(String.Format("parameter type {0} not (yet) defined for {1}", 
                                                     ((SimpleNode)node.jjtGetChild(1)).GetIdentification(),
                                                     node.GetIdentification()));
     }
     paramType = ReplaceByCustomMappedIfNeeded(paramType);
     String paramName = IdlNaming.MapIdlNameToClsName(((ASTsimple_declarator)node.jjtGetChild(2)).getIdent());
     
     ParameterSpec result = new ParameterSpec(paramName, paramType, direction);
     return result;
 }