"name"              , FieldType.ATTRIBUTE, AccessPrivilege.VIEW, AccessPrivilege.SYSTEM, false
GrouperConfig.ATTR_N, FieldType.ATTRIBUTE, AccessPrivilege.VIEW, AccessPrivilege.SYSTEM, false
  private static void _installFieldsAndTypes()     throws  GrouperRuntimeException  {    Set base_f    = new LinkedHashSet();    Set fields    = new LinkedHashSet();    Set naming_f  = new LinkedHashSet();    Set types     = new LinkedHashSet();       // Base Attributes    base_f.add(      new Field(        "description"       , FieldType.ATTRIBUTE,        AccessPrivilege.READ, AccessPrivilege.ADMIN,        true      )    );    base_f.add(      new Field(        "displayName"       , FieldType.ATTRIBUTE,        AccessPrivilege.VIEW, AccessPrivilege.SYSTEM,        false      )    );    base_f.add(      new Field(        "displayExtension"  , FieldType.ATTRIBUTE,        AccessPrivilege.VIEW, AccessPrivilege.ADMIN,        false      )    );    base_f.add(      new Field(        "extension"         , FieldType.ATTRIBUTE,        AccessPrivilege.VIEW, AccessPrivilege.ADMIN,        false      )    );    base_f.add(      new Field(        "name"              , FieldType.ATTRIBUTE,        AccessPrivilege.VIEW, AccessPrivilege.SYSTEM,        false      )    );    // Base Access Privileges    base_f.add(      new Field(        "admins"                , FieldType.ACCESS,        AccessPrivilege.ADMIN   , AccessPrivilege.ADMIN,        true      )    );    base_f.add(      new Field(        GrouperConfig.LIST      , FieldType.LIST,        AccessPrivilege.READ    , AccessPrivilege.UPDATE,        true      )    );    base_f.add(      new Field(        "optins"                , FieldType.ACCESS,        AccessPrivilege.UPDATE  , AccessPrivilege.UPDATE,        true      )    );    base_f.add(      new Field(        "optouts"               , FieldType.ACCESS,        AccessPrivilege.UPDATE  , AccessPrivilege.UPDATE,        true      )    );    base_f.add(      new Field(        "readers"               , FieldType.ACCESS,        AccessPrivilege.ADMIN   , AccessPrivilege.ADMIN,        true      )    );    base_f.add(      new Field(        "updaters"              , FieldType.ACCESS,        AccessPrivilege.ADMIN   , AccessPrivilege.ADMIN,        true      )    );    base_f.add(      new Field(        "viewers"               , FieldType.ACCESS,        AccessPrivilege.ADMIN   , AccessPrivilege.ADMIN,        true      )    );    // Naming Privileges    naming_f.add(      new Field(        "creators"              , FieldType.NAMING,        NamingPrivilege.STEM    , NamingPrivilege.STEM,        true      )    );    naming_f.add(      new Field(        "stemmers"              , FieldType.NAMING,        NamingPrivilege.STEM    , NamingPrivilege.STEM,        true      )    );    GroupType base    = new GroupType("base", base_f, false, false);    types.add(base);    GroupType naming  = new GroupType("naming", naming_f, false, true);    types.add(naming);      fields.addAll(base_f);    fields.addAll(naming_f);    try {      Session   hs        = HibernateHelper.getSession();      Set       objects   = new LinkedHashSet();      Settings  settings  = new Settings(Settings.getCurrentSchemaVersion());      objects.addAll(types);      objects.add(settings);      HibernateHelper.save(objects);      hs.close();      EventLog.info("set schema version   : " + settings.getSchemaVersion()  );      EventLog.info("group types installed: " + types.size()                 );      EventLog.info("fields installed     : " + fields.size()                );    }    catch (HibernateException eH) {      String msg = E.RI_IS + eH.getMessage();      ErrorLog.fatal(RegistryInstall.class, msg);      throw new GrouperRuntimeException(msg, eH);    }  } // private static void _installFieldsAndTypes()