Sync with 5.4.2
[deliverable/titan.core.git] / xsdconvert / RootType.cc
index f80a19a2bc9eef58e55c27fc16903e9455c2190c..4ad464f009727d19757fbe7d041597424d648ad2 100644 (file)
@@ -149,6 +149,9 @@ void RootType::addVariant(const VariantMode var, const Mstring& var_value, const
     case V_useOrder:
       variantstring = "\"useOrder\"";
       break;
+    case V_useType:
+      variantstring = "\"useType\"";
+      break;
     case V_useUnion:
       variantstring = "\"useUnion\"";
       break;
@@ -172,16 +175,16 @@ void RootType::printVariant(FILE * file) {
   if (!e_flag_used && !variant.empty()) {
     fprintf(file, "\nwith {\n");
     for (List<Mstring>::iterator var = variant.end(); var; var = var->Prev) {
-      fprintf(file, "variant %s;\n", var->Data.c_str());
+      fprintf(file, "  variant %s;\n", var->Data.c_str());
     }
     for (List<Mstring>::iterator var = hidden_variant.end(); var; var = var->Prev) {
-      fprintf(file, "//variant %s;\n", var->Data.c_str());
+      fprintf(file, "  //variant %s;\n", var->Data.c_str());
     }
     fprintf(file, "}");
   } else if (!e_flag_used && type.originalValueWoPrefix == Mstring("boolean")) {
     fprintf(file, ";\n//with {\n");
     for (List<Mstring>::iterator var = hidden_variant.end(); var; var = var->Prev) {
-      fprintf(file, "//variant %s;\n", var->Data.c_str());
+      fprintf(file, "  //variant %s;\n", var->Data.c_str());
     }
     fprintf(file, "//}");
   }
@@ -242,5 +245,10 @@ bool RootType::hasVariant(const Mstring& var) const{
       return true;
     }
   }
+  for(List<Mstring>::iterator vars = hidden_variant.begin(); vars; vars = vars->Next){
+    if(vars->Data.isFound(var)){
+      return true;
+    }
+  }
   return false;
 }
\ No newline at end of file
This page took 0.024186 seconds and 5 git commands to generate.