コード例 #1
0
  /** @param node */
  public RemoteMethodArg(Node node) throws GrpcException {
    this.mode = NgParamTypes.getModeVal(XMLUtil.getAttributeValue(node, attrIOMode));
    try {
      this.type = NgParamTypes.getTypeVal(XMLUtil.getAttributeValue(node, attrType));
    } catch (NumberFormatException e) {
      throw new NgXMLReadException(e);
    }

    // number of dimension
    this.nDims = XMLUtil.countChildNode(node, namespaceURI, RemoteMethodArgSubScript.elemSubscript);
    if (this.nDims == 0) {
      this.argSubScript = null; // no dimensions
    } else {
      // set for dimensions
      this.argSubScript = new RemoteMethodArgSubScript[this.nDims];

      // read information of subscript
      for (int i = 0; i < this.nDims; i++) {
        Node subscriptNode =
            XMLUtil.getChildNode(node, namespaceURI, RemoteMethodArgSubScript.elemSubscript, i);
        this.argSubScript[i] = new RemoteMethodArgSubScript(subscriptNode);
      }
    }

    // create RemoteMethodInfo for callback
    if (this.type == NgParamTypes.NG_TYPE_CALLBACK) {
      this.callbackInfo =
          new RemoteMethodInfo(
              XMLUtil.getChildNode(node, namespaceURI, RemoteMethodInfo.elemMethod));
    }
  }