+ * {
+ * "objectId": {@link Asset#getObjectId()}
+ * "uuid": {@link Asset#getUuid()}
+ * "displayName": {@link Asset#getDisplayName()}
+ * "title": {@link Asset#getTitle()}
+ * }
+ *
+ *
+ * @param asset The {@link Asset} to render.
+ * @param language The current language.
+ *
+ * @return The rendered asset.
+ */
public Map
+ * {
+ * "legamMetadata": {@link AudioAsset#getLegalMetadata()}.
+ * }
+ *
+ *
+ * The associated {@link LegalMetadata} asset is rendered using
+ * {@link LegalMetadataRenderer} and the result is put {@code result} under
+ * the key {@code legalMetadata}.
+ *
+ * @param asset The asset to render.
+ * @param language The current language.
+ * @param result The map into which the result is placed.
+ */
@Override
- protected void renderAsset(final Asset asset,
+ protected void renderAsset(final Asset asset,
final Locale language,
final Map
+ * {
+ * "description": {@link BinaryAsset#getDescription()}
+ * "fileName": {@link BinaryAsset#getFileName()}
+ * "mimeType": {@link BinaryAsset#getMimeType()}
+ * "size": {@link BinaryAsset#getSize()}.
+ * }
+ *
+ *
+ * The mime type is converted to a string using
+ * {@link Objects#toString(java.lang.Object)}.
+ *
+ * @param asset The asset to render.
+ * @param language The current language.
+ * @param result The map into which the result is put.
+ */
@Override
- protected void renderAsset(final Asset asset,
+ protected void renderAsset(final Asset asset,
final Locale language,
final Map
+ * {
+ * "description": {@link Bookmark#getDescription()}
+ * "url": {@link Bookmark#getUrl()}.
+ * }
+ *
+ *
+ * @param asset The asset to render.
+ * @param language The current language.
+ * @param result The map into which the result is placed.
+ */
@Override
- protected void renderAsset(final Asset asset,
+ protected void renderAsset(final Asset asset,
final Locale language,
final Map
+ * {
+ * "legalMetadata": {@link ExternalVideoAsset#getLegalMetadata()}
+ * }
+ *
+ *
+ * The associated {@link LegalMetadata} asset is rendered using the
+ * {@link LegalMetadata} and the result is put into the map under the key
+ * {@code legalMetadata}.
+ *
+ * @param asset The asset to render.
+ * @param language The current language
+ * @param result The map into which the result is put.
+ */
@Override
protected void renderAsset(final Asset asset,
final Locale language,
diff --git a/ccm-cms/src/main/java/org/librecms/pagemodel/assets/ExternalVideoAssetRenderer.java b/ccm-cms/src/main/java/org/librecms/pagemodel/assets/ExternalVideoAssetRenderer.java
index aedac5cd3..70b1f84d5 100644
--- a/ccm-cms/src/main/java/org/librecms/pagemodel/assets/ExternalVideoAssetRenderer.java
+++ b/ccm-cms/src/main/java/org/librecms/pagemodel/assets/ExternalVideoAssetRenderer.java
@@ -29,6 +29,7 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
/**
+ * Renderer for {@link ExternalVideoAsset}s.
*
* @author Jens Pelzetter
*/
@@ -40,12 +41,31 @@ public class ExternalVideoAssetRenderer extends BookmarkRenderer {
@AssetRenderer(renders = LegalMetadata.class)
private AbstractAssetRenderer legalMetadataRenderer;
+ /**
+ * Renders the provided {@link ExternalVideoAsset}. In addition to the data
+ * put into {@code result} by the {@link BookmarkRenderer} the following
+ * properties are put into the map:
+ *
+ *
+ * {
+ * "legalMetadata": {@link ExternalVideoAsset#getLegalMetadata()}
+ * }
+ *
+ *
+ * The associated {@link LegalMetadata} asset is rendered using the
+ * {@link LegalMetadata} and the result is put into the map under the key
+ * {@code legalMetadata}.
+ *
+ * @param asset The asset to render.
+ * @param language The current language
+ * @param result The map into which the result is put.
+ */
@Override
protected void renderAsset(final Asset asset,
- final Locale locale,
+ final Locale language,
final Map
+ * {
+ * "width": {@link Image#getWidth()}
+ * "height": {@link Image#getHeight()}
+ * "legalMetadata": {@link LegalMetadataRenderer#render(org.librecms.contentsection.Asset, java.util.Locale)} using {@link Image#getLegalMetadata()}.
+ * }
+ *
+ *
+ * The associated {@link LegalMetadata} asset is rendered using
+ * {@link LegalMetadataRenderer} and the result is put into map under the
+ * key {@code legalMetadata}.
+ *
+ * @param asset The asset to render.
+ * @param language The current language.
+ * @param result The map into which the result is put.
+ */
@Override
protected void renderAsset(final Asset asset,
final Locale language,
diff --git a/ccm-cms/src/main/java/org/librecms/pagemodel/assets/LegalMetadataRenderer.java b/ccm-cms/src/main/java/org/librecms/pagemodel/assets/LegalMetadataRenderer.java
index 6e1025f47..0eee9d56c 100644
--- a/ccm-cms/src/main/java/org/librecms/pagemodel/assets/LegalMetadataRenderer.java
+++ b/ccm-cms/src/main/java/org/librecms/pagemodel/assets/LegalMetadataRenderer.java
@@ -28,6 +28,7 @@ import java.util.Map;
import javax.enterprise.context.RequestScoped;
/**
+ * Renderer for {@link LegalMetadata} assets.
*
* @author Jens Pelzetter
*/
@@ -35,24 +36,40 @@ import javax.enterprise.context.RequestScoped;
@AssetRenderer(renders = LegalMetadata.class)
public class LegalMetadataRenderer extends AbstractAssetRenderer {
+ /**
+ * Render the provided {@link LegalMetadata} asset. The following properties
+ * are added to the {@code result} map:
+ *
+ *
+ * "rightsHolder": {@link LegalMetadata#getRightsHolder()}
+ * "rights": {@link LegalMetadata#getRights()}
+ * "publisher": {@link LegalMetadata#getPublisher()}
+ * "creator": {@link LegalMetadata#getCreator()}
+ * "contributors": {@link LegalMetadata#getContributors()}
+ *
+ *
+ * @param asset The asset to renderer.
+ * @param language The current language.
+ * @param result The map into which the result is placed.
+ */
@Override
- protected void renderAsset(final Asset asset,
+ protected void renderAsset(final Asset asset,
final Locale language,
final Map
+ * {
+ * "objectId": {@link ContentItem#getObjectId()}
+ * "itemUuid": {@link ContentItem#getItemUuid()}
+ * "displayName": {@link ContentItem#getDisplayName()}
+ * "name": {@link ContentItem#getName()}
+ * "title": {@link ContentItem#getTitle()}
+ * "description": {@link ContentItem#getDescription()}
+ * }
+ *
+ *
+ * For external links an {@link RelatedLink} uses a association with a
+ * {@link Bookmark}. The {@code Bookmark} is rendered using the
+ * {@link BookmarkRenderer}. The result is put into {@code result} with the
+ * key {@code bookmark}.
+ *
+ *
+ * @param asset The asset to render.
+ * @param language The current language.
+ * @param result The map is which to result is stored.
+ */
@Override
protected void renderAsset(final Asset asset,
final Locale language,
diff --git a/ccm-cms/src/main/java/org/librecms/pagemodel/assets/SideNoteRenderer.java b/ccm-cms/src/main/java/org/librecms/pagemodel/assets/SideNoteRenderer.java
index bd020e5bb..ae7cb6e6c 100644
--- a/ccm-cms/src/main/java/org/librecms/pagemodel/assets/SideNoteRenderer.java
+++ b/ccm-cms/src/main/java/org/librecms/pagemodel/assets/SideNoteRenderer.java
@@ -27,6 +27,7 @@ import java.util.Map;
import javax.enterprise.context.RequestScoped;
/**
+ * Renderer for {@link SideNote} assets.
*
* @author Jens Pelzetter
*/
@@ -34,21 +35,33 @@ import javax.enterprise.context.RequestScoped;
@AssetRenderer(renders = SideNote.class)
public class SideNoteRenderer extends AbstractAssetRenderer {
+ /**
+ * Renderer to provided {@link SideNote}. The only property put into
+ * {@code result} by this renderer is {@code text}:
+ *
+ *
+ * {
+ * "text": {@link SideNote#getText()}
+ * }
+ *
+ *
+ * @param asset The {@link SideNote} to render.
+ * @param language The current language.
+ * @param result The into which the result is placed.
+ */
@Override
- protected void renderAsset(final Asset asset,
+ protected void renderAsset(final Asset asset,
final Locale language,
final Map
+ * {
+ * width: {@link VideoAsset#getWidth()}
+ * height: {@link VideoAsset#getHeight()}
+ * legalMetadata: {@link VideoAsset#getLegalMetadata()}
+ * }
+ *
+ *
+ * @param asset The asset to render.
+ * @param language The current language.
+ * @param result The map into which the result is put.
+ */
@Override
protected void renderAsset(final Asset asset,
- final Locale locale,
+ final Locale language,
final Map
+ * {
+ * "objectId": {@link ContentItem#getObjectId()}
+ * "uuid": {@link ContentItem#getUuid()}
+ * "displayName": {@link ContentItem#getDisplayName()}
+ * "itemUuid": {@link ContentItem#getItemUuid()}
+ * "name": {@link ContentItem#getName()}
+ * "title": {@link ContentItem#getTitle()}
+ * "contentType": {@link ContentItem#getContentType()}
+ * "description": {@link ContentItem#getDescription()}
+ * "creationDate": {@link ContentItem#getCreationDate()}
+ * "lastModified": {@link ContentItem#getLastModified()}
+ * "creationUserName": {@link ContentItem#getCreationUserName()}
+ * "lastModifyingUserName": {@link ContentItem#getLastModifyingUserName()}
+ * "attachments": {@link ContentItem#getAttachments()}.
+ * }
+ *
+ *
+ * The value of {@link ContentItem#getContentType} is rendered by
+ * {@link #renderContentType(org.librecms.contentsection.ContentType, java.util.Locale)}.
+ *
+ * The value of {@link ContentItem#getAttachments()} is rendered using
+ * {@link #renderAttachmentList(org.librecms.contentsection.AttachmentList, java.util.Locale)}.
+ *
+ * @param item The item to render.
+ * @param language The current language.
+ *
+ * @return A map with the data of the provided {@link ContentItem}.
+ */
public Map
+ * {
+ * "objectId": {@link ContentType#getObjectId()}
+ * "uuid": {@link ContentType#getUuid()}
+ * "displayName": {@link ContentType#getDisplayName()}
+ * "label": {@link ContentType#getLabel()}
+ * }
+ *
+ *
+ * @param contentType The {@link ContentType} to render.
+ * @param language The current language.
+ *
+ * @return A map with the properties of the {@link ContentType}.
+ */
protected Map
+ * {
+ * "listId": {@link AttachmentList#getListId()}
+ * "uuid": {@link AttachmentList#getUuid()}
+ * "name": {@link AttachmentList#getName()}
+ * "order": {@link AttachmentList#getOrder()}
+ * "title": {@link AttachmentList#getTitle()}
+ * "description": {@link AttachmentList#getDescription()}
+ * "attachments": {@link AttachmentList#getAttachments()}
+ * }
+ *
+ *
+ * The attachments of the list are rendered using
+ * {@link #renderAttachment(org.librecms.contentsection.ItemAttachment, java.util.Locale)}.
+ *
+ * @param attachmentList The {@link AttachmentList} to render.
+ * @param language The current language.
+ *
+ * @return A map containing the data of the {@link AttachmentList} and its
+ * {@link Attachment}s.
+ */
protected Map
+ * {
+ * "attachmentId": {@link ItemAttachment#getAttachmentId()}
+ * "uuid": {@link ItemAttachment#getUuid()}
+ * "sortKey": {@link ItemAttachment#getSortKey()}
+ * "asset": {@link ItemAttachment#getAsset()}
+ * }
+ *
+ *
+ * The associated {@link Asset} is rendered using the appropriate
+ * {@link AbstractAssetRenderer} implementation. The
+ * {@link AbstractAssetRenderer} to use is retrieved using
+ * {@link AssetRenderers#findRenderer(java.lang.Class)}.
+ *
+ * @param attachment The {@link ItemAttachment} to render.
+ * @param language The current language.
+ *
+ * @return A map with the data of the {@link ItemAttachment}.
+ */
protected Map
+ * {
+ * "text": {@link Article#getText()}
+ * }
+ *
+ *
+ * @param item The item to render.
+ * @param language The current language.
+ * @param result The map into which the result is placed.
+ */
@Override
public void renderItem(final ContentItem item,
final Locale language,
diff --git a/ccm-cms/src/main/java/org/librecms/pagemodel/contentitems/ContentItemRenderers.java b/ccm-cms/src/main/java/org/librecms/pagemodel/contentitems/ContentItemRenderers.java
index d39ed9705..9becfbd33 100644
--- a/ccm-cms/src/main/java/org/librecms/pagemodel/contentitems/ContentItemRenderers.java
+++ b/ccm-cms/src/main/java/org/librecms/pagemodel/contentitems/ContentItemRenderers.java
@@ -31,6 +31,9 @@ import javax.enterprise.util.AnnotationLiteral;
import javax.inject.Inject;
/**
+ * Provides access to all available implementations of
+ * {@link AbstractContentItemRenderer}.
+ *
*
* @author Jens Pelzetter
*/
@@ -43,6 +46,13 @@ public class ContentItemRenderers {
@Inject
private Instance
+ * {
+ * "text": {@link Event#getText()}
+ * "startDate": {@link Event#getStartDate()}
+ * "endDate": {@link Event#getEndDate()}
+ * "eventDate": {@link Event#getEventType()}
+ * "location": {@link Event#getLocation()}
+ * "mainContributor": {@link Event#getMainContributor()}
+ * "eventType": {@link Event#getEventType()}
+ * "mapLink": {@link Event#getMapLink()}
+ * "cost": {@link Event#getCost()}
+ * }
+ *
+ *
+ * @param item The item to render.
+ * @param language The current language.
+ * @param result The map into which the result is placed.
+ */
@Override
public void renderItem(final ContentItem item,
final Locale language,
diff --git a/ccm-cms/src/main/java/org/librecms/pagemodel/contentitems/MultiPartArticleRenderer.java b/ccm-cms/src/main/java/org/librecms/pagemodel/contentitems/MultiPartArticleRenderer.java
index 7ff44348f..ed83a8b49 100644
--- a/ccm-cms/src/main/java/org/librecms/pagemodel/contentitems/MultiPartArticleRenderer.java
+++ b/ccm-cms/src/main/java/org/librecms/pagemodel/contentitems/MultiPartArticleRenderer.java
@@ -28,12 +28,33 @@ import java.util.Map;
import java.util.stream.Collectors;
/**
+ * Renderer for {@link MultiPartArticle} items.
*
* @author Jens Pelzetter
*/
@ContentItemRenderer(renders = MultiPartArticle.class)
-public class MultiPartArticleRenderer extends AbstractContentItemRenderer {
+public class MultiPartArticleRenderer extends AbstractContentItemRenderer {
+ /**
+ * Renders the provided {@link MultiPartArticle}. The following values are
+ * put into {@code result}:
+ *
+ *
+ * {
+ * "summary": {@link MultiPartArticle#getSummary()}
+ * "sections": {@link MultiPartArticle#getSections()}
+ * }
+ *
+ *
+ * The value of {@code sections} is a list containing a {@link Map}
+ * generated by
+ * {@link #renderSection(org.librecms.contenttypes.MultiPartArticleSection, java.util.Locale)}
+ * for each section.
+ *
+ * @param item The item to render.
+ * @param language The current language.
+ * @param result The map into which the result is placed.
+ */
@Override
public void renderItem(final ContentItem item,
final Locale language,
@@ -45,7 +66,7 @@ public class MultiPartArticleRenderer extends AbstractContentItemRenderer {
} else {
return;
}
-
+
result.put("summary", article.getSummary().getValue(language));
result.put("sections",
article
@@ -56,6 +77,25 @@ public class MultiPartArticleRenderer extends AbstractContentItemRenderer {
}
+ /**
+ * Renders a {@link MultiPartArticleSection}. The generated map contains the
+ * following values:
+ *
+ *
+ * {
+ * "sectionId": {@link MultiPartArticleSection#getSectionId()}
+ * "title": {@link MultiPartArticleSection#getTitle()}
+ * "rank": {@link MultiPartArticleSection#getRank()}
+ * "pageBreak": {@link MultiPartArticleSection#isPageBreak()}
+ * "text": {@link MultiPartArticleSection#getText()}
+ * }
+ *
+ *
+ * @param section The section to render.
+ * @param language The current language.
+ *
+ * @return A map with the data of the section.
+ */
protected Map
+ * {
+ * "text": {@link News#getText()}
+ * "releaseDate": {@link News#getReleaseDate()}
+ * }
+ *
+ *
+ * @param item The item to render.
+ * @param language The current language.
+ * @param result The map into which the result is placed.
+ */
@Override
public void renderItem(final ContentItem item,
final Locale language,
@@ -45,7 +60,7 @@ public class NewsRenderer extends AbstractContentItemRenderer {
} else {
return;
}
-
+
result.put("text", news.getText().getValue(language));
result.put("releaseDate", news.getReleaseDate());
}
diff --git a/ccm-cms/src/main/java/org/librecms/pages/Page.java b/ccm-cms/src/main/java/org/librecms/pages/Page.java
index a36f95e37..4ed741438 100644
--- a/ccm-cms/src/main/java/org/librecms/pages/Page.java
+++ b/ccm-cms/src/main/java/org/librecms/pages/Page.java
@@ -30,13 +30,10 @@ import java.util.Objects;
import javax.persistence.CollectionTable;
import javax.persistence.ElementCollection;
-import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.MapKeyColumn;
-import javax.persistence.MapKeyJoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
@@ -45,7 +42,8 @@ import static org.librecms.CmsConstants.*;
import static org.librecms.pages.PagesConstants.*;
/**
- *
+ * A CMS page is a container which contains several data how a page is displayed.
+ *
* @author Jens Pelzetter
*/
@Entity
@@ -64,20 +62,24 @@ public class Page extends CcmObject implements Serializable {
private static final long serialVersionUID = 5108486858438122008L;
+ /**
+ * The page model for the index item of the associated category.
+ */
@ManyToOne
@JoinColumn(name = "INDEX_PAGE_MODEL_ID")
private PageModel indexPageModel;
+ /**
+ * The page model for other items in the associated category.
+ */
@ManyToOne
@JoinColumn(name = "ITEM_PAGE_MODEL_ID")
private PageModel itemPageModel;
+ /**
+ * The configurations for this page.
+ */
@ElementCollection
-// @JoinTable(name = "PAGE_THEME_CONFIGURATIONS",
-// schema = DB_SCHEMA,
-// joinColumns = {
-// @JoinColumn(name = "PAGE_ID")
-// })
@CollectionTable(name = "PAGE_THEME_CONFIGURATIONS",
schema = DB_SCHEMA,
joinColumns = {
diff --git a/ccm-cms/src/main/java/org/librecms/pages/PageManager.java b/ccm-cms/src/main/java/org/librecms/pages/PageManager.java
index 601dfcbb4..7d79d1879 100644
--- a/ccm-cms/src/main/java/org/librecms/pages/PageManager.java
+++ b/ccm-cms/src/main/java/org/librecms/pages/PageManager.java
@@ -28,7 +28,10 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.transaction.Transactional;
+import static org.librecms.pages.PagesConstants.*;
+
/**
+ * Manager for {@link Page} entities.
*
* @author Jens Pelzetter
*/
@@ -37,13 +40,22 @@ public class PageManager {
@Inject
private CategoryManager categoryManager;
-
+
@Inject
private CategoryRepository categoryRepo;
-
+
@Inject
private PageRepository pageRepo;
+ /**
+ * Finds the {@link Page} associated with an {@link Category}. If there is
+ * no {@link Page} associated with the provided {@link Category} this method
+ * will return the {@link Page} associated with the parent category.
+ *
+ * @param category The {@link Category} which is associated with the {@link Page}.
+ *
+ * @return The {@link Page} associated with the provided {@code category}.
+ */
@Transactional(Transactional.TxType.REQUIRED)
public Page findPageForCategory(final Category category) {
@@ -66,12 +78,19 @@ public class PageManager {
}
}
+ /**
+ * Create
+ * @param category
+ * @return
+ */
@Transactional(Transactional.TxType.REQUIRED)
public Page createPageForCategory(final Category category) {
final Page page = new Page();
pageRepo.save(page);
- categoryManager.addObjectToCategory(page, category);
+ categoryManager.addObjectToCategory(page,
+ category,
+ CATEGORIZATION_TYPE_PAGE_CONF);
return page;
}
diff --git a/ccm-cms/src/main/java/org/librecms/pages/PageRepository.java b/ccm-cms/src/main/java/org/librecms/pages/PageRepository.java
index 5a205bc67..64f820968 100644
--- a/ccm-cms/src/main/java/org/librecms/pages/PageRepository.java
+++ b/ccm-cms/src/main/java/org/librecms/pages/PageRepository.java
@@ -30,12 +30,19 @@ import javax.persistence.NoResultException;
import javax.persistence.TypedQuery;
/**
- *
+ * Repository for {@link Page} entities.
+ *
* @author Jens Pelzetter
*/
@RequestScoped
public class PageRepository extends AbstractEntityRepository