gatein SVN: r189 - in components/mop/trunk: api/src/main/java/org/gatein/mop/api/workspace and 3 other directories.
by do-not-reply@jboss.org
Author: julien_viet
Date: 2009-09-14 07:55:26 -0400 (Mon, 14 Sep 2009)
New Revision: 189
Modified:
components/mop/trunk/api/src/main/java/org/gatein/mop/api/content/Customization.java
components/mop/trunk/api/src/main/java/org/gatein/mop/api/workspace/WorkspaceCustomizationContext.java
components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/PageImpl.java
components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/SiteImpl.java
components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/WorkspaceImpl.java
components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/AbstractCustomization.java
components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/ContextSpecialization.java
components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/CustomizationContainer.java
components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceClone.java
components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceCustomization.java
components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceSpecialization.java
components/mop/trunk/core/src/test/java/org/gatein/mop/core/api/workspace/content/CustomizationTestCase.java
Log:
more work on MOP
Modified: components/mop/trunk/api/src/main/java/org/gatein/mop/api/content/Customization.java
===================================================================
--- components/mop/trunk/api/src/main/java/org/gatein/mop/api/content/Customization.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/api/src/main/java/org/gatein/mop/api/content/Customization.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -31,13 +31,6 @@
public interface Customization<S> {
/**
- * Returns the customization name or null if it does not have any name.
- *
- * @return the customization name
- */
- String getName();
-
- /**
* Returns the content id this customization refers to.
*
* @return the content id
@@ -52,7 +45,14 @@
ContentType<S> getType();
/**
- * Returns the contexts that are associated with that customization. Note that the set returned
+ * Returns the related context of this customization.
+ *
+ * @return the related context
+ */
+ CustomizationContext getContext();
+
+ /**
+ * Returns the contexts that are associated with this customization. Note that the set returned
* maintains the hierararchy order of the set from the most specific to the least specific.
*
* @return the contexts
@@ -79,17 +79,23 @@
/**
* Customize the state with respect to the provided customization context.
*
- * @param mode the customization mode
* @param contexts the customization context
* @return the customization
*/
Customization<S> customize(Collection<CustomizationContext> contexts);
/**
- * Returns the customization cascaded state.
+ * Returns the parent customization or null if this customization is full featured clone.
*
- * @return the cascaded state
+ * @return the parent customization
*/
+ Customization getParent();
+
+ /**
+ * Returns the customization virtual state that is computed from various state of the customization hierarchy.
+ *
+ * @return the virtual state
+ */
S getVirtualState();
/**
Modified: components/mop/trunk/api/src/main/java/org/gatein/mop/api/workspace/WorkspaceCustomizationContext.java
===================================================================
--- components/mop/trunk/api/src/main/java/org/gatein/mop/api/workspace/WorkspaceCustomizationContext.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/api/src/main/java/org/gatein/mop/api/workspace/WorkspaceCustomizationContext.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -65,4 +65,14 @@
*/
<S> Customization<S> customize(String name, Customization<S> customization);
+
+ /**
+ * Returns the customization name related to this context or null if the customization is not
+ * related to this context.
+ *
+ * @param customization the customization related to this context
+ * @return the customization name
+ */
+ String nameOf(Customization customization);
+
}
Modified: components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/PageImpl.java
===================================================================
--- components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/PageImpl.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/PageImpl.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -131,6 +131,10 @@
return getCustomizations().customize(name, customization);
}
+ public String nameOf(Customization customization) {
+ return getCustomizations().nameOf(customization);
+ }
+
// *******************************************************************************************************************
public <T extends TemplatizedObject> Collection<? extends T> getTemplatizedObjects(ObjectType<T> templatizedType) {
Modified: components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/SiteImpl.java
===================================================================
--- components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/SiteImpl.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/SiteImpl.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -93,4 +93,8 @@
public <S> Customization<S> customize(String name, Customization<S> customization) {
return getCustomizations().customize(name, customization);
}
+
+ public String nameOf(Customization customization) {
+ return getCustomizations().nameOf(customization);
+ }
}
Modified: components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/WorkspaceImpl.java
===================================================================
--- components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/WorkspaceImpl.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/WorkspaceImpl.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -98,6 +98,10 @@
return getCustomizations().customize(name, customization);
}
+ public String nameOf(Customization customization) {
+ return getCustomizations().nameOf(customization);
+ }
+
// Workspace implementation ******************************************************************************************
@SuppressWarnings("unchecked")
Modified: components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/AbstractCustomization.java
===================================================================
--- components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/AbstractCustomization.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/AbstractCustomization.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -73,14 +73,14 @@
abstract ContextType create();
@Create
- abstract ContextSpecialization create2();
+ abstract ContextSpecialization createContextSpecialization();
@Create
- public abstract PortletPreferencesState createPS();
+ public abstract PortletPreferencesState createPreferenceState();
- public abstract CustomizationContext getCustomizationContext();
+ public abstract CustomizationContext getContext();
- public abstract AbstractCustomization getParentCustomization();
+ public abstract AbstractCustomization getParent();
public Object getVirtualState() {
Object childPayload = null;
@@ -91,7 +91,7 @@
//
Object parentPayload = null;
- AbstractCustomization parent = getParentCustomization();
+ AbstractCustomization parent = getParent();
if (parent != null) {
parentPayload = parent.getVirtualState();
}
@@ -128,7 +128,7 @@
//
if (contentState == null) {
- contentState = createPS();
+ contentState = createPreferenceState();
setContentState(contentState);
}
@@ -137,10 +137,6 @@
}
}
- public void destroy() {
- throw new UnsupportedOperationException("todo");
- }
-
public Customization<Object> getCustomization(Set<CustomizationContext> contexts) {
return get(contexts, false);
}
@@ -159,7 +155,7 @@
//
while (true) {
- CustomizationContext currentContext = current.getCustomizationContext();
+ CustomizationContext currentContext = current.getContext();
if (currentContext == null) {
throw new IllegalStateException("Could not resolve customization context for customization " + this);
}
@@ -168,7 +164,7 @@
contexts.add(currentContext);
//
- AbstractCustomization parent = current.getParentCustomization();
+ AbstractCustomization parent = current.getParent();
if (parent != null) {
current = parent;
} else {
@@ -228,7 +224,7 @@
}
//
- blah = create2();
+ blah = createContextSpecialization();
c.put(id, blah);
//
Modified: components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/ContextSpecialization.java
===================================================================
--- components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/ContextSpecialization.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/ContextSpecialization.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -53,22 +53,22 @@
throw new UnsupportedOperationException();
}
- public String getContentId() {
- throw new UnsupportedOperationException();
- }
-
- public String getName() {
- return getParentCustomization().getName();
- }
-
- public CustomizationContext getCustomizationContext() {
+ public CustomizationContext getContext() {
ContextType currentContextType = getContextType();
String contextType = currentContextType.getName();
return customizationContextResolver.resolve(contextType, getContextId());
}
- public AbstractCustomization getParentCustomization() {
+ public AbstractCustomization getParent() {
ContextType contextType = getContextType();
return contextType.getContainer().getCustomization();
}
+
+ public String getContentId() {
+ throw new UnsupportedOperationException();
+ }
+
+ public void destroy() {
+ throw new UnsupportedOperationException("todo");
+ }
}
Modified: components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/CustomizationContainer.java
===================================================================
--- components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/CustomizationContainer.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/CustomizationContainer.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -71,4 +71,15 @@
content.setCustomization((WorkspaceCustomization)customization);
return (Customization<S>)content;
}
+
+ public String nameOf(Customization customization) {
+ if (customization instanceof WorkspaceClone) {
+ WorkspaceClone wc = (WorkspaceClone)customization;
+ Map<String, WorkspaceCustomization> contents = getCustomizations();
+ if (contents.containsValue(wc)) {
+ return wc.getFooName();
+ }
+ }
+ return null;
+ }
}
Modified: components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceClone.java
===================================================================
--- components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceClone.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceClone.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -65,7 +65,7 @@
//
public String getName() {
- CustomizationContext customizationContext = getCustomizationContext();
+ CustomizationContext customizationContext = getContext();
if (customizationContext instanceof WorkspaceCustomizationContext) {
return getFooName();
} else {
@@ -73,11 +73,10 @@
}
}
- public AbstractCustomization getParentCustomization() {
+ public AbstractCustomization getParent() {
return null;
}
- @Override
public void destroy() {
// Get specializations (clone for now because of bug with concurrent modif in chromattic)
Collection<WorkspaceSpecialization> specializations = new ArrayList<WorkspaceSpecialization>(getSpecializations());
Modified: components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceCustomization.java
===================================================================
--- components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceCustomization.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceCustomization.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -30,17 +30,17 @@
public abstract class WorkspaceCustomization extends AbstractCustomization {
@ManyToOne
- public abstract Object getParent();
+ public abstract Object getOwner();
@Destroy
public abstract void doDestroy();
- public CustomizationContext getCustomizationContext() {
- Object parent = getParent();
- if (parent instanceof CustomizationContainer) {
- return ((CustomizationContainer)parent).getOwner();
- } else if (parent instanceof UIWindowImpl) {
- return (UIWindowImpl)parent;
+ public CustomizationContext getContext() {
+ Object owner = getOwner();
+ if (owner instanceof CustomizationContainer) {
+ return ((CustomizationContainer)owner).getOwner();
+ } else if (owner instanceof UIWindowImpl) {
+ return (UIWindowImpl)owner;
} else {
throw new AssertionError();
}
Modified: components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceSpecialization.java
===================================================================
--- components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceSpecialization.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/main/java/org/gatein/mop/core/api/workspace/content/WorkspaceSpecialization.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -41,17 +41,8 @@
doDestroy();
}
- public String getName() {
- AbstractCustomization parent = getParentCustomization();
- if (parent == null) {
- return null;
- } else {
- return parent.getName();
- }
- }
-
public String getContentId() {
- AbstractCustomization parent = getParentCustomization();
+ AbstractCustomization parent = getParent();
if (parent == null) {
return null;
} else {
@@ -60,7 +51,7 @@
}
public ContentType<Object> getType() {
- AbstractCustomization parent = getParentCustomization();
+ AbstractCustomization parent = getParent();
if (parent == null) {
return null;
} else {
@@ -68,7 +59,7 @@
}
}
- public AbstractCustomization getParentCustomization() {
+ public AbstractCustomization getParent() {
return getCustomization();
}
}
Modified: components/mop/trunk/core/src/test/java/org/gatein/mop/core/api/workspace/content/CustomizationTestCase.java
===================================================================
--- components/mop/trunk/core/src/test/java/org/gatein/mop/core/api/workspace/content/CustomizationTestCase.java 2009-09-13 19:19:51 UTC (rev 188)
+++ components/mop/trunk/core/src/test/java/org/gatein/mop/core/api/workspace/content/CustomizationTestCase.java 2009-09-14 11:55:26 UTC (rev 189)
@@ -81,7 +81,7 @@
assertEquals(0, customization.getContexts().size());
assertEquals("WeatherPortlet", customization.getContentId());
assertEquals(Preferences.CONTENT_TYPE, customization.getType());
- assertEquals("marseille", customization.getName());
+ assertEquals("marseille", workspace.nameOf(customization));
}
public void testCustomizeWindow() {
@@ -93,8 +93,14 @@
//
Customization<Preferences> customization = window.customize(Preferences.CONTENT_TYPE, "WeatherPortlet", marseille);
assertSame(customization, window.getCustomization());
- assertEquals(null, customization.getName());
+ assertEquals(marseille, customization.getVirtualState());
assertEquals(marseille, customization.getState());
+
+ //
+ customization = (Customization<Preferences>)window.getCustomization();
+ assertSame(customization, window.getCustomization());
+ assertEquals(marseille, customization.getVirtualState());
+ assertEquals(marseille, customization.getState());
}
public void testCustomizeWindowByCloneWithNoState() {
@@ -106,7 +112,6 @@
//
Customization<Preferences> customization = window.customize(Preferences.CONTENT_TYPE, "WeatherPortlet", null);
assertSame(customization, window.getCustomization());
- assertEquals(null, customization.getName());
assertNull(customization.getState());
}
@@ -125,7 +130,6 @@
assertEquals(Arrays.<CustomizationContext>asList(window, portal), new ArrayList<CustomizationContext>(windowCustomization.getContexts()));
assertSame(windowCustomization, window.getCustomization());
assertTrue(((Customization)windowCustomization) instanceof WorkspaceSpecialization);
- assertEquals("marseille", windowCustomization.getName());
//
assertPreferences(null, windowCustomization.getState());