public boolean update(XModelObject object) throws XModelException {
    boolean b = true;

    IAutoLoad auto = (IAutoLoad) object.getModel().getProperties().get(XModelConstants.AUTOLOAD);
    if (auto != null) {
      auto.update(object.getModel());
    }

    XModelObject[] cs = object.getChildren();
    for (int i = 0; i < cs.length; i++) {
      XObjectLoader loader = XModelObjectLoaderUtil.getObjectLoader(cs[i]);
      if (loader != null) b &= loader.update(cs[i]);
    }
    updateClassPath(object);
    ((FileSystemsImpl) object).updateOverlapped();
    return b;
  }
  public boolean save(XModelObject object) {
    if (!fsutil.isModified(object)) return true;

    if (object.getModel().getProperties().get(XModelConstants.AUTOLOAD) != null) {
      return true;
    }

    String s = getEclipseFileName(object, false);
    boolean b = (s == null) ? super.save(object.copy(1)) : saveEclipse(object.copy(1));
    if (((FileSystemsImpl) object).requestSave()) return true;
    XModelObject[] cs = object.getChildren();
    for (int i = 0; i < cs.length; i++) {
      XObjectLoader loader = XModelObjectLoaderUtil.getObjectLoader(cs[i]);
      if (loader != null) b &= loader.save(cs[i]);
    }
    return b;
  }