private boolean isModified(DatabasePreference dbPref, PortletPreference pref) { String[] dbValues = dbPref.getValues(); String[] values = pref.getValues(); if (dbValues == null || values == null) return true; if (dbValues.length != values.length) return true; for (int ix = 0; ix < values.length; ix++) { if (!values[ix].equals(dbValues[ix])) return true; } return false; }
/** * Jetspeed: PortletPreferencesProvider */ public void preloadApplicationPreferences(String portletApplicationName) { JetspeedPreferencesMap map = new JetspeedPreferencesMap(); Criteria c = new Criteria(); c.addEqualTo(DTYPE, DISCRIMINATOR_PORTLET); c.addEqualTo(APPLICATION_NAME, portletApplicationName); String previousPortletName = ""; QueryByCriteria query = QueryFactory.newQuery(DatabasePreference.class, c); query.addOrderByAscending(DTYPE); query.addOrderByAscending(APPLICATION_NAME); query.addOrderByAscending(PORTLET_NAME); Iterator<DatabasePreference> preferences = getPersistenceBrokerTemplate().getIteratorByQuery(query); while (preferences.hasNext()) { DatabasePreference preference = preferences.next(); if (preference.getPortletName().equals(previousPortletName)) { map = new JetspeedPreferencesMap(); String defaultsCacheKey = getPortletPreferenceKey(portletApplicationName, preference.getPortletName()); preferenceCache.put(preferenceCache.createElement(defaultsCacheKey, map)); previousPortletName = preference.getPortletName(); } map.put(preference.getName(), new JetspeedPreferenceImpl(preference.getName(), preference.getValues(), preference.isReadOnly())); } }
previousKey = cacheKey; map.put(preference.getName(), new JetspeedPreferenceImpl(preference.getName(), preference.getValues(), preference.isReadOnly()));
userPreferences.put(preference.getName(), new JetspeedPreferenceImpl(preference.getName(), preference.getValues(), preference.isReadOnly()));
windowPreferences = sessionPreferences.createWindowPreferences(preference.getEntityId()); windowPreferences.put(preference.getName(), new JetspeedPreferenceImpl(preference.getName(), preference.getValues(), preference.isReadOnly()));
map.put(preference.getName(), new JetspeedPreferenceImpl(preference.getName(), preference.getValues(), preference.isReadOnly()));
CacheElement cacheElement = preferenceCache.get(defaultsCacheKey); JetspeedPreferencesMap map = (cacheElement != null ? (JetspeedPreferencesMap) cacheElement.getContent() : new JetspeedPreferencesMap()); map.put(preferenceName, new JetspeedPreferenceImpl(preferenceName, dbPref.getValues(), dbPref.isReadOnly())); preferenceCache.put(preferenceCache.createElement(defaultsCacheKey, map));