diff --git a/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/SubCategoryId.java b/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/AssociatedCategoryData.java similarity index 76% rename from ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/SubCategoryId.java rename to ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/AssociatedCategoryData.java index 5ebf3367d..333bee7b6 100644 --- a/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/SubCategoryId.java +++ b/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/AssociatedCategoryData.java @@ -25,20 +25,23 @@ import org.libreccm.l10n.LocalizedString; * * @author Jens Pelzetter */ -public class SubCategoryId extends CategoryId { +public class AssociatedCategoryData extends CategoryId { private String name; private LocalizedString title; + + private LocalizedString description; - public SubCategoryId() { + public AssociatedCategoryData() { super(); } - public SubCategoryId(final Category category) { + public AssociatedCategoryData(final Category category) { super(category); name = category.getName(); title = category.getTitle(); + description = category.getDescription(); } public String getName() { @@ -57,5 +60,15 @@ public class SubCategoryId extends CategoryId { this.title = title; } + public LocalizedString getDescription() { + return description; + } + + public void setDescription(final LocalizedString description) { + this.description = description; + } + + + } diff --git a/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/CategorizationData.java b/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/CategorizationData.java new file mode 100644 index 000000000..1e54827c6 --- /dev/null +++ b/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/CategorizationData.java @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2020 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package org.libreccm.api.admin.categorization.dto; + +import org.libreccm.api.core.dto.CcmObjectId; +import org.libreccm.categorization.Categorization; +import org.libreccm.categorization.Category; + +import java.util.Objects; + +/** + * + * @author Jens Pelzetter + */ +public class CategorizationData { + + private long categorizationId; + + private String uuid; + + private CcmObjectId categorizedObject; + + private boolean indexObject; + + private long categoryOrder; + + private long objectOrder; + + private String type; + + public CategorizationData() { + // Nothing + } + + public CategorizationData(final Categorization fromCategorization) { + Objects.requireNonNull( + fromCategorization, + "Can't create a CategorizationData DTO from null." + ); + + categorizationId = fromCategorization.getCategorizationId(); + uuid = fromCategorization.getUuid(); + categorizedObject = new CcmObjectId( + fromCategorization.getCategorizedObject() + ); + indexObject = fromCategorization.isIndexObject(); + categoryOrder = fromCategorization.getCategoryOrder(); + objectOrder = fromCategorization.getObjectOrder(); + type = fromCategorization.getType(); + } + + public long getCategorizationId() { + return categorizationId; + } + + public void setCategorizationId(final long categorizationId) { + this.categorizationId = categorizationId; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(final String uuid) { + this.uuid = uuid; + } + + public CcmObjectId getCategorizedObject() { + return categorizedObject; + } + + public void setCategorizedObject(final CcmObjectId categorizedObject) { + this.categorizedObject = categorizedObject; + } + + public boolean isIndexObject() { + return indexObject; + } + + public void setIndexObject(final boolean indexObject) { + this.indexObject = indexObject; + } + + public long getCategoryOrder() { + return categoryOrder; + } + + public void setCategoryOrder(final long categoryOrder) { + this.categoryOrder = categoryOrder; + } + + public long getObjectOrder() { + return objectOrder; + } + + public void setObjectOrder(final long objectOrder) { + this.objectOrder = objectOrder; + } + + public String getType() { + return type; + } + + public void setType(final String type) { + this.type = type; + } + + + +} diff --git a/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/CategoryData.java b/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/CategoryData.java new file mode 100644 index 000000000..a943a9217 --- /dev/null +++ b/ccm-core/src/main/java/org/libreccm/api/admin/categorization/dto/CategoryData.java @@ -0,0 +1,200 @@ +/* + * Copyright (C) 2020 LibreCCM Foundation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ +package org.libreccm.api.admin.categorization.dto; + +import org.libreccm.categorization.Category; +import org.libreccm.l10n.LocalizedString; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * + * @author Jens Pelzetter + */ +public class CategoryData { + + private long categoryId; + + private String uuid; + + private String uniqueId; + + private String name; + + private LocalizedString title; + + private LocalizedString description; + + private boolean enabled; + + private boolean visible; + + private boolean abstractCategory; + + private List objects; + + private List subCategories; + + private AssociatedCategoryData parentCategory; + + private long categoryOrder; + + public CategoryData() { + objects = new ArrayList<>(); + subCategories = new ArrayList<>(); + } + + public CategoryData(final Category fromCategory) { + Objects.requireNonNull( + fromCategory, "Can't create a CategoryData DTO from null." + ); + + categoryId = fromCategory.getObjectId(); + uuid = fromCategory.getUuid(); + uniqueId = fromCategory.getUniqueId(); + name = fromCategory.getName(); + title = fromCategory.getTitle(); + description = fromCategory.getDescription(); + enabled = fromCategory.isEnabled(); + visible = fromCategory.isVisible(); + abstractCategory = fromCategory.isAbstractCategory(); + objects = fromCategory + .getObjects() + .stream() + .map(CategorizationData::new) + .collect(Collectors.toList()); + subCategories = fromCategory + .getSubCategories() + .stream() + .map(AssociatedCategoryData::new) + .collect(Collectors.toList()); + parentCategory = new AssociatedCategoryData( + fromCategory.getParentCategory() + ); + } + + public long getCategoryId() { + return categoryId; + } + + public void setCategoryId(final long categoryId) { + this.categoryId = categoryId; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(final String uuid) { + this.uuid = uuid; + } + + public String getUniqueId() { + return uniqueId; + } + + public void setUniqueId(final String uniqueId) { + this.uniqueId = uniqueId; + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + + public LocalizedString getTitle() { + return title; + } + + public void setTitle(final LocalizedString title) { + this.title = title; + } + + public LocalizedString getDescription() { + return description; + } + + public void setDescription(final LocalizedString description) { + this.description = description; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(final boolean enabled) { + this.enabled = enabled; + } + + public boolean isVisible() { + return visible; + } + + public void setVisible(final boolean visible) { + this.visible = visible; + } + + public boolean isAbstractCategory() { + return abstractCategory; + } + + public void setAbstractCategory(final boolean abstractCategory) { + this.abstractCategory = abstractCategory; + } + + public List getObjects() { + return new ArrayList<>(objects); + } + + public void setObjects(final List objects) { + this.objects = new ArrayList<>(objects); + } + + public List getSubCategories() { + return new ArrayList<>(subCategories); + } + + public void setSubCategories( + final List subCategories) { + this.subCategories = new ArrayList<>(subCategories); + } + + public AssociatedCategoryData getParentCategory() { + return parentCategory; + } + + public void setParentCategory(final AssociatedCategoryData parentCategory) { + this.parentCategory = parentCategory; + } + + public long getCategoryOrder() { + return categoryOrder; + } + + public void setCategoryOrder(final long categoryOrder) { + this.categoryOrder = categoryOrder; + } + +} diff --git a/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java b/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java index ee2ae9ba5..9fd2d02e0 100644 --- a/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java +++ b/ccm-core/src/main/java/org/libreccm/categorization/Categorization.java @@ -141,7 +141,7 @@ public class Categorization implements Serializable, Relation, Exportable { private boolean indexObject; /** - * Defines the order in which the categories assigned the the categorised + * Defines the order in which the categories assigned to the categorized * object are shown. */ @Column(name = "CATEGORY_ORDER")