@Override
  public D2WContext subContext() {
    if (_context == null) {
      String s = hasBinding("_dynamicPage") ? (String) valueForBinding("_dynamicPage") : null;
      if (s != null) {
        _context = makeSubContextForDynamicPageNamed(s, session());
      } else {
        _context =
            makeSubContextForTaskAndEntity(
                task(), EOModelGroup.defaultGroup().entityNamed(entityName()), session());
      }
      String s1 = lookFromSettings();
      if (s1 != null) {
        _context.takeValueForInferrableKey(lookFromSettings(), D2WModel.LookKey);
      }
      _context.takeValueForKey(
          _context.task() + "CurrentObject",
          D2WComponent.keyForGenerationReplacementForVariableNamed("currentObject"));
    }
    NSDictionary nsdictionary = settings();
    if (nsdictionary != null) {
      String s2;
      for (Enumeration enumeration = nsdictionary.keyEnumerator();
          enumeration.hasMoreElements();
          _context.takeValueForInferrableKey(nsdictionary.valueForKey(s2), s2)) {
        s2 = (String) enumeration.nextElement();
      }
    }

    if (log.isDebugEnabled()) log.debug(hashCode() + ": context: " + _context);
    return _context;
  }