Updated Page template objects to support properties

git-svn-id: https://svn.apache.org/repos/asf/rave/trunk@1558686 
13f79535-47bb-0310-9956-ffa450edef68


Project: http://git-wip-us.apache.org/repos/asf/rave/repo
Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/bf379713
Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/bf379713
Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/bf379713

Branch: refs/heads/angular
Commit: bf379713f103c439315af313f90a1c73a4436e4a
Parents: ff8c5d0
Author: Matthew B. Franklin <[email protected]>
Authored: Thu Jan 16 03:32:52 2014 +0000
Committer: Matthew B. Franklin <[email protected]>
Committed: Thu Jan 16 03:32:52 2014 +0000

----------------------------------------------------------------------
 .../org/apache/rave/model/PageTemplate.java     | 17 +++++++++++++++++
 .../portal/model/impl/PageTemplateImpl.java     | 10 ++++++++++
 .../rave/portal/model/JpaPageTemplate.java      | 20 ++++++++++++++++++++
 3 files changed, 47 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/rave/blob/bf379713/rave-components/rave-core-api/src/main/java/org/apache/rave/model/PageTemplate.java
----------------------------------------------------------------------
diff --git 
a/rave-components/rave-core-api/src/main/java/org/apache/rave/model/PageTemplate.java
 
b/rave-components/rave-core-api/src/main/java/org/apache/rave/model/PageTemplate.java
index 05bc36b..d383e15 100644
--- 
a/rave-components/rave-core-api/src/main/java/org/apache/rave/model/PageTemplate.java
+++ 
b/rave-components/rave-core-api/src/main/java/org/apache/rave/model/PageTemplate.java
@@ -20,6 +20,7 @@ package org.apache.rave.model;
 
 import javax.xml.bind.annotation.XmlTransient;
 import java.util.List;
+import java.util.Map;
 
 @XmlTransient
 public interface PageTemplate {
@@ -61,4 +62,20 @@ public interface PageTemplate {
     List<PageTemplate> getSubPageTemplates();
 
     void setSubPageTemplates(List<PageTemplate> subPageTemplates);
+
+    /**
+     * Generic property bag for extension of the page template object.
+     *
+     * Rave makes no attempt to understand the shape of the property bag.
+     *
+     * @return a valid Map of String to Object.
+     */
+    Map<String, Object> getProperties();
+
+    /**
+     * Overrides the current properties with a new set.
+     *
+     * @param properties a non-null map of string to JSON serializable object
+     */
+    void setProperties(Map<String, Object> properties);
 }

http://git-wip-us.apache.org/repos/asf/rave/blob/bf379713/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageTemplateImpl.java
----------------------------------------------------------------------
diff --git 
a/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageTemplateImpl.java
 
b/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageTemplateImpl.java
index 398975c..18a44a5 100644
--- 
a/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageTemplateImpl.java
+++ 
b/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageTemplateImpl.java
@@ -24,6 +24,7 @@ import org.apache.rave.model.PageTemplateRegion;
 import org.apache.rave.model.PageType;
 
 import java.util.List;
+import java.util.Map;
 
 public class PageTemplateImpl implements PageTemplate {
     private String id;
@@ -36,6 +37,7 @@ public class PageTemplateImpl implements PageTemplate {
     private List<PageTemplateRegion> pageTemplateRegions;
     private long renderSequence;
     private boolean defaultTemplate;
+    private Map<String, Object> properties;
 
     public PageTemplateImpl() {
 
@@ -125,6 +127,14 @@ public class PageTemplateImpl implements PageTemplate {
         this.defaultTemplate = defaultTemplate;
     }
 
+    public Map<String, Object> getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Map<String, Object> properties) {
+        this.properties = properties;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;

http://git-wip-us.apache.org/repos/asf/rave/blob/bf379713/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java
----------------------------------------------------------------------
diff --git 
a/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java
 
b/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java
index 66dc464..706ddb5 100644
--- 
a/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java
+++ 
b/rave-components/rave-jpa/src/main/java/org/apache/rave/portal/model/JpaPageTemplate.java
@@ -19,6 +19,7 @@
 
 package org.apache.rave.portal.model;
 
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import org.apache.rave.model.PageLayout;
 import org.apache.rave.model.PageTemplate;
 import org.apache.rave.model.PageTemplateRegion;
@@ -30,6 +31,7 @@ import javax.persistence.*;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 @Entity
 @Table(name="page_template")
@@ -88,6 +90,14 @@ public class JpaPageTemplate implements BasicEntity, 
Serializable, PageTemplate
     @Column(name = "default_template")
     private boolean defaultTemplate;
 
+    @Lob @JsonIgnore
+    @Column(name = "serialized_data")
+    private String serializedData;
+
+    //It will be the responsibility of the repository to ensure that this 
property is set when the page is retrieved from the database
+    @Transient
+    private Map<String, Object> properties;
+
     @Override
     public Long getEntityId() {
         return entityId;
@@ -210,4 +220,14 @@ public class JpaPageTemplate implements BasicEntity, 
Serializable, PageTemplate
     public String getId() {
         return this.getEntityId() == null ? null : 
this.getEntityId().toString();
     }
+
+    @Override
+    public Map<String, Object> getProperties() {
+        return properties;
+    }
+
+    @Override
+    public void setProperties(Map<String, Object> properties) {
+        this.properties = properties;
+    }
 }

Reply via email to