Beispiel #1
0
  /**
   * Get the parameter's XML Schema Type for a given parameter name (based on a given data model).
   *
   * @param model
   * @param paramName
   * @return
   */
  public static SchemaType getParamSchemaType(Model model, String paramName) {
    /** Get the ModelParameter Struct from the data model */
    ModelParameter modelParameter = getModelParameter(model, paramName);
    if (modelParameter == null) {
      log.debug(
          "Unable to find ModelParameter Struct for "
              + paramName
              + "in data model! Treat it as String for now.");
      return XmlString.type;
    }

    broadbandForumOrgCwmpDatamodel14.Syntax syntax = modelParameter.getSyntax();
    if (syntax == null) {
      log.error("Unable to get syntax for " + paramName + "!");
      return XmlString.type;
    }

    if (syntax.isSetString()) {
      return XmlString.type;
    } else if (syntax.isSetBoolean()) {
      return XmlBoolean.type;
    } else if (syntax.isSetInt()) {
      return XmlInt.type;
    } else if (syntax.isSetUnsignedInt()) {
      return XmlUnsignedInt.type;
    } else if (syntax.isSetUnsignedLong()) {
      return XmlUnsignedLong.type;
    } else if (syntax.isSetLong()) {
      return XmlLong.type;
    } else if (syntax.isSetBase64()) {
      return XmlBase64Binary.type;
    } else if (syntax.isSetHexBinary()) {
      return XmlHexBinary.type;
    } else if (syntax.isSetDateTime()) {
      return XmlDateTime.type;
    } else {
      if (syntax.getDataType() != null && syntax.getDataType().getRef() != null) {
        switch (syntax.getDataType().getRef()) {
          case "Alias":
          case "IPAddress":
            return XmlString.type;
        }
      }

      log.error("unknown type in syntax:\n" + syntax.xmlText());
      return XmlString.type;
    }
  }