@Override public final Map<String, List<String>> getAppsMap() { Map<String, List<String>> appsMap = OtfCachedListsDTO.getAppsMap(); if (appsMap == null || appsMap.size() == 0) { appsMap = new HashMap<String, List<String>>(); for (OtfApplication app : getLocalModel().getApps().getApplications().values()) { List<String> grpNames = new ArrayList<String>(); List<OtfGroup> grps = getGroupsByApp(app); for (OtfGroup grp : grps) { grpNames.add(grp.getName()); } Collections.sort(grpNames); appsMap.put(app.getName(), grpNames); } // add user admin even if only dir String useradminapp = getAdminApp(); if (!appsMap.containsKey(useradminapp)) { if (getDirsMap().containsKey(useradminapp)) { appsMap.put(useradminapp, getDirsMap().get(useradminapp)); } } setAppsMap(appsMap); } return appsMap; }
@Override public OtfApplication getAppbyName(String appNameIn) { for (OtfApplication app : getLocalModel().getApps().getApplications().values()) { if (app.getName().equals(appNameIn)) { return app; } } return null; }
public final List<String> getOtfAppNamesForUser(final String username) { ArrayList<String> appsList = new ArrayList<String>(); Collection<String> dirsforUser = getDirNamesForUser(username); for (OtfApplication app : getLocalModel().getApps().getApplications().values()) { for (String key : app.getAccountStores().keySet()) { if (dirsforUser.contains(key)) { appsList.add(app.getName()); } } } return appsList; }
@Override public final List<String> getDirsByAppName(final String appnameIn) { List<String> dirs = new ArrayList<String>(); OtfApplication oapp = getLocalModel().getApps().getAppByName(appnameIn); if (oapp != null) { Map<String, OtfAccountStore> acsmap = oapp.getAccountStores(); if (acsmap != null && acsmap.size() > 0) { for (OtfAccountStore acs : acsmap.values()) { if (acs.isDir()) { dirs.add(acs.getName()); } } } } return dirs; }
public final List<OtfGroup> getGroupsByApp(final OtfApplication app) { List<OtfGroup> groups = new ArrayList<OtfGroup>(); for (OtfAccountStore acs : app.getAccountStores().values()) { if (acs.isDir()) { String dirName = acs.getName(); groups.addAll(getGroupsByDirName(dirName)); } } return groups; }