예제 #1
0
파일: OpDecl.java 프로젝트: aabykov/JacORB
  /** collect Interface Repository information in the argument hashtable */
  public void getIRInfo(Hashtable irInfoTable) {
    StringBuffer sb = new StringBuffer();

    TypeSpec ts = opTypeSpec.typeSpec();

    if (ts instanceof AliasTypeSpec) {
      //             if( ((AliasTypeSpec)ts).originalType.typeSpec() instanceof FixedPointType )
      //              {
      sb.append(ts.full_name());
      //             }
    }
    sb.append("(");

    for (Enumeration e = paramDecls.elements(); e.hasMoreElements(); ) {
      ParamDecl param = (ParamDecl) e.nextElement();
      if (param.paramAttribute == ParamDecl.MODE_INOUT) {
        sb.append("inout:" + param.simple_declarator.name + " ");
      } else if (param.paramAttribute == ParamDecl.MODE_OUT) {
        sb.append("out:" + param.simple_declarator.name + " ");
      } else // MODE_IN
      sb.append("in:" + param.simple_declarator.name + " ");

      ts = param.paramTypeSpec.typeSpec();

      if (ts instanceof AliasTypeSpec) {
        sb.append(ts.full_name());
      }

      sb.append(",");
    }

    if (paramDecls.size() > 0) {
      // remove extra trailing ","
      sb.deleteCharAt(sb.length() - 1);
    }
    sb.append(")");

    if (opAttribute == ONEWAY) sb.append("-oneway");

    //       if( enter )
    irInfoTable.put(name, sb.toString());

    if (logger.isDebugEnabled()) logger.debug("OpInfo for " + name + " : " + sb.toString());
  }