class UmlStateAction
!!!145794.cpp!!!	sKind() : string
  return "state action";
!!!145794.java!!!	sKind() : string
  return "state action";
!!!145666.cpp!!!	html(in pfix : string, in rank : uint, in level : uint) : void
  UmlCom::message(name());

  QCString s = stereotype();
  
  if (s.isEmpty())
    s = "State action";
  else
    s = "State action " + s;
    
  UmlItem::html(s, (UmlDiagram *) 0);
  
  fw.write("<p>Defined in ");
  if (parent()->kind() == aRegion)
    parent()->parent()->write();
  else
    parent()->write();
  fw.write("</p>");

  fw.write("<p>Expression :</p><ul>");
  
  s = expression();

  if (!s.isEmpty()) {
    fw.write("<li>OCL : <pre>\n");
    writeq(s);
    fw.write("</pre></li>");
  }

  s = cppExpression();

  if (!s.isEmpty()) {
    fw.write("<li>C++ : <pre>\n");
    writeq(s);
    fw.write("</pre></li>");
  }

  s = javaExpression();

  if (!s.isEmpty()) {
    fw.write("<li>Java : <pre>\n");
    writeq(s);
    fw.write("</pre></li>");
  }

  fw.write("</ul>");

  write_children(pfix, rank, level);

  unload(FALSE, FALSE);
!!!145666.java!!!	html(in pfix : string, in rank : uint, in level : uint) : void
  UmlCom.message(name());

  String s = stereotype();
  
  if (s == null)
    s = "State action";
  else
    s = "State action " + s;
    
  html(s, null);
  
  fw.write("<p>Defined in ");
  if (parent().kind() == anItemKind.aRegion)
    parent().parent().write();
  else
    parent().write();
   fw.write("</p>");

  fw.write("<p>Expression :</p><ul>");
  
  s = expression();

  if (s.length() != 0) {
    fw.write("<li>OCL : <pre>\n");
    writeq(s);
    fw.write("</pre></li>");
  }

  s = cppExpression();

  if (s.length() != 0) {
    fw.write("<li>C++ : <pre>\n");
    writeq(s);
    fw.write("</pre></li>");
  }

  s = javaExpression();

  if (s.length() != 0) {
    fw.write("<li>Java : <pre>\n");
    writeq(s);
    fw.write("</pre></li>");
  }

  fw.write("</ul>");

  write_children(pfix, rank, level);

  unload(false, false);
