/*
   * Generates the initializers for all values that are shared between states (e.g. all instance factories
   * shared by AddItems overrides).
   */
  private void genSharedFactories(StatesModel model, CodeFragmentList list, String indent) {
    Map<String, SharedObject> shared = model.sharedObjects;

    for (Iterator<String> iter = shared.keySet().iterator(); iter.hasNext(); ) {
      SharedObject symbol = shared.get(iter.next());
      String lval =
          indent
              + "var "
              + symbol.name
              + "_factory:"
              + NameFormatter.retrieveClassName(standardDefs.CLASS_DEFERREDINSTANCEFROMFUNCTION)
              + " = \n";
      indent += StatesGenerator.INDENT;
      String suffix = symbol.model.isDeclared() ? "_i" : "_c";
      Boolean isTransient = symbol.model.getIsTransient();
      String rval =
          indent
              + "new "
              + NameFormatter.toDot(standardDefs.CLASS_DEFERREDINSTANCEFROMFUNCTION)
              + "("
              + symbol.name
              + suffix
              + (isTransient ? ", " + symbol.name + "_r" : "")
              + ");";
      indent = indent.substring(0, indent.length() - INDENT.length());
      list.add(lval, rval, 0);
    }
  }
 /*
  * Generate all necessary binding instance initializers for any data bound overrides.
  */
 private void genBindingInitializers(CodeFragmentList list, String indent) {
   for (Iterator<StatesModel.Override> iter = bindingsQueue.iterator(); iter.hasNext(); ) {
     StatesModel.Override symbol = (StatesModel.Override) iter.next();
     list.add(
         indent,
         NameFormatter.toDot(standardDefs.CLASS_BINDINGMANAGER),
         ".executeBindings(this, \"" + symbol.declaration + "\", " + symbol.declaration + ");",
         0);
   }
 }