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; + } }
