You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by we...@apache.org on 2004/02/04 22:11:26 UTC
cvs commit: jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/entity/impl PortletEntityImpl.java
weaver 2004/02/04 13:11:26
Modified: services/registry/src/java/org/apache/jetspeed/om/entity/impl
PortletEntityImpl.java
Log:
- PortletEntityImpl no longer needs to implement PersistenceBrokerAware
- refactored to support the new non-OJB collections
Revision Changes Path
1.3 +91 -125 jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/entity/impl/PortletEntityImpl.java
Index: PortletEntityImpl.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/services/registry/src/java/org/apache/jetspeed/om/entity/impl/PortletEntityImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PortletEntityImpl.java 19 Jan 2004 21:46:17 -0000 1.2
+++ PortletEntityImpl.java 4 Feb 2004 21:11:26 -0000 1.3
@@ -54,21 +54,21 @@
package org.apache.jetspeed.om.entity.impl;
import java.io.IOException;
-import java.util.Collection;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import java.util.Locale;
+import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.entity.PortletEntityAccess;
+import org.apache.jetspeed.entity.PortletEntityNotStoredException;
import org.apache.jetspeed.om.common.portlet.PortletDefinitionComposite;
-import org.apache.jetspeed.om.common.preference.PreferenceSetComposite;
+import org.apache.jetspeed.om.preference.impl.AbstractPreference;
import org.apache.jetspeed.om.preference.impl.PreferenceSetImpl;
import org.apache.jetspeed.om.window.impl.PortletWindowListImpl;
-import org.apache.jetspeed.entity.PortletEntityAccess;
-import org.apache.jetspeed.entity.PortletEntityNotStoredException;
import org.apache.jetspeed.util.JetspeedObjectID;
-import org.apache.ojb.broker.PersistenceBroker;
-import org.apache.ojb.broker.PersistenceBrokerAware;
-import org.apache.ojb.broker.PersistenceBrokerException;
import org.apache.pluto.om.common.Description;
import org.apache.pluto.om.common.ObjectID;
import org.apache.pluto.om.common.PreferenceSet;
@@ -86,9 +86,12 @@
* @author <a href="mailto:weaver@apache.org">Scott T. Weaver</a>
* @version $Id$
*/
-public class PortletEntityImpl implements PortletEntity, PortletEntityCtrl, PersistenceBrokerAware
+public class PortletEntityImpl implements PortletEntity, PortletEntityCtrl
{
+ private long id;
+ private long portletId;
+
private JetspeedObjectID oid;
public ObjectID getId()
@@ -103,8 +106,11 @@
private static final Log log = LogFactory.getLog(PortletEntityImpl.class);
- protected PreferenceSetComposite preferences = new PreferenceSetImpl();
- protected PreferenceSetComposite originalPreferences;
+ protected PreferenceSetImpl mutatingPreferencesWrapper = new PreferenceSetImpl();
+
+ protected List originalPreferences;
+
+ protected List mutatingPreferences;
private PortletApplicationEntity applicationEntity = null;
@@ -116,7 +122,36 @@
public PreferenceSet getPreferenceSet()
{
- return preferences;
+ if (mutatingPreferences == null)
+ {
+ if (originalPreferences == null)
+ {
+ originalPreferences = new ArrayList();
+ mutatingPreferences = new ArrayList();
+ }
+ else
+ {
+ initMutatingPreferences();
+ }
+
+ }
+ mutatingPreferencesWrapper.setInnerCollection(mutatingPreferences);
+ return mutatingPreferencesWrapper;
+ }
+
+ protected void initMutatingPreferences()
+ {
+ mutatingPreferences = new ArrayList(originalPreferences.size());
+ if (originalPreferences != null)
+ {
+
+ Iterator itr = originalPreferences.iterator();
+ while (itr.hasNext())
+ {
+ AbstractPreference pref = (AbstractPreference) itr.next();
+ mutatingPreferences.add(pref.clone());
+ }
+ }
}
public PortletDefinition getPortletDefinition()
@@ -138,22 +173,60 @@
{
try
{
+
+ if (mutatingPreferences != null && mutatingPreferences.size() > 0)
+ {
+ boolean originalPrefsExist = true;
+ if (originalPreferences == null)
+ {
+ originalPreferences = new ArrayList(mutatingPreferences.size());
+ originalPrefsExist = false;
+ }
+
+ try
+ {
+ for (int i = 0; i < mutatingPreferences.size(); i++)
+ {
+ AbstractPreference pref = (AbstractPreference) mutatingPreferences.get(i);
+ if (originalPrefsExist)
+ {
+ AbstractPreference orgPref = (AbstractPreference) originalPreferences.get(i);
+ if (orgPref != null)
+ {
+ BeanUtils.copyProperties(orgPref, pref);
+ }
+ else
+ {
+ originalPreferences.add(pref.clone());
+ }
+
+ }
+ else
+ {
+ originalPreferences.add(pref.clone());
+ }
+
+ }
+ }
+ catch (Exception e1)
+ {
+ throw new IOException("Unable to map mutated preferences into the originals: " + e1.toString());
+ }
+
+ }
+
PortletEntityAccess.storePortletEntity(this);
}
catch (PortletEntityNotStoredException e)
{
- throw new IOException("Unable to store Portlet Entity. "+e.toString());
+ throw new IOException("Unable to store Portlet Entity. " + e.toString());
}
}
public void reset() throws java.io.IOException
{
- ((Collection) preferences).clear();
- if (originalPreferences != null)
- {
- ((Collection) preferences).addAll((Collection) originalPreferences);
- }
+ initMutatingPreferences();
}
// internal methods used for debugging purposes only
@@ -207,113 +280,6 @@
public void setPortletDefinition(PortletDefinition composite)
{
portletDefinition = (PortletDefinitionComposite) composite;
- }
-
- /**
- * <p>
- * afterDelete
- * </p>
- *
- * @see org.apache.ojb.broker.PersistenceBrokerAware#afterDelete(org.apache.ojb.broker.PersistenceBroker)
- * @param arg0
- * @throws org.apache.ojb.broker.PersistenceBrokerException
- */
- public void afterDelete(PersistenceBroker arg0) throws PersistenceBrokerException
- {
-
-
- }
-
- /**
- * <p>
- * afterInsert
- * </p>
- *
- * @see org.apache.ojb.broker.PersistenceBrokerAware#afterInsert(org.apache.ojb.broker.PersistenceBroker)
- * @param arg0
- * @throws org.apache.ojb.broker.PersistenceBrokerException
- */
- public void afterInsert(PersistenceBroker arg0) throws PersistenceBrokerException
- {
-
-
- }
-
- /**
- * <p>
- * afterLookup
- * </p>
- *
- * @see org.apache.ojb.broker.PersistenceBrokerAware#afterLookup(org.apache.ojb.broker.PersistenceBroker)
- * @param arg0
- * @throws org.apache.ojb.broker.PersistenceBrokerException
- */
- public void afterLookup(PersistenceBroker arg0) throws PersistenceBrokerException
- {
- if(originalPreferences == null)
- {
- originalPreferences = new PreferenceSetImpl();
- }
- ((Collection) originalPreferences).addAll((Collection) preferences);
- }
-
- /**
- * <p>
- * afterUpdate
- * </p>
- *
- * @see org.apache.ojb.broker.PersistenceBrokerAware#afterUpdate(org.apache.ojb.broker.PersistenceBroker)
- * @param arg0
- * @throws org.apache.ojb.broker.PersistenceBrokerException
- */
- public void afterUpdate(PersistenceBroker arg0) throws PersistenceBrokerException
- {
-
-
- }
-
- /**
- * <p>
- * beforeDelete
- * </p>
- *
- * @see org.apache.ojb.broker.PersistenceBrokerAware#beforeDelete(org.apache.ojb.broker.PersistenceBroker)
- * @param arg0
- * @throws org.apache.ojb.broker.PersistenceBrokerException
- */
- public void beforeDelete(PersistenceBroker arg0) throws PersistenceBrokerException
- {
-
-
- }
-
- /**
- * <p>
- * beforeInsert
- * </p>
- *
- * @see org.apache.ojb.broker.PersistenceBrokerAware#beforeInsert(org.apache.ojb.broker.PersistenceBroker)
- * @param arg0
- * @throws org.apache.ojb.broker.PersistenceBrokerException
- */
- public void beforeInsert(PersistenceBroker arg0) throws PersistenceBrokerException
- {
-
-
- }
-
- /**
- * <p>
- * beforeUpdate
- * </p>
- *
- * @see org.apache.ojb.broker.PersistenceBrokerAware#beforeUpdate(org.apache.ojb.broker.PersistenceBroker)
- * @param arg0
- * @throws org.apache.ojb.broker.PersistenceBrokerException
- */
- public void beforeUpdate(PersistenceBroker arg0) throws PersistenceBrokerException
- {
-
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org