diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/controllers/StakeholderController.java b/src/main/java/eu/dnetlib/uoamonitorservice/controllers/StakeholderController.java index c0bf752..3937167 100644 --- a/src/main/java/eu/dnetlib/uoamonitorservice/controllers/StakeholderController.java +++ b/src/main/java/eu/dnetlib/uoamonitorservice/controllers/StakeholderController.java @@ -1,7 +1,10 @@ package eu.dnetlib.uoamonitorservice.controllers; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import eu.dnetlib.uoamonitorservice.dao.IndicatorDAO; import eu.dnetlib.uoamonitorservice.dao.StakeholderDAO; -import eu.dnetlib.uoamonitorservice.entities.Stakeholder; +import eu.dnetlib.uoamonitorservice.entities.*; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -9,6 +12,7 @@ import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.Iterator; import java.util.List; @RestController @@ -19,6 +23,39 @@ public class StakeholderController { @Autowired private StakeholderDAO stakeholderDAO; + @Autowired + private IndicatorDAO indicatorDAO; + + public Stakeholder setIndicatorsForStakeholder(Stakeholder stakeholder) { + for (Topic topic: stakeholder.getTopics()) { + for(Category category : topic.getCategories()) { + List subCategories = new ArrayList<>(); + + for(SubCategory subCategory : category.getSubCategories()) { + SubCategory subCategoryFull = new SubCategory(subCategory); + + List charts = new ArrayList<>(); + for(String indicatorId : subCategory.getCharts()) { + charts.add(indicatorDAO.findById(indicatorId)); + } + subCategoryFull.setCharts(charts); + + List numbers = new ArrayList<>(); + for(String indicatorId : subCategory.getNumbers()) { + numbers.add(indicatorDAO.findById(indicatorId)); + } + subCategoryFull.setNumbers(numbers); + + subCategories.add(subCategoryFull); + } + + category.setSubCategories(subCategories); + } + + } + return stakeholder; + } + @RequestMapping(value = "/stakeholder/all", method = RequestMethod.GET) public List getAllStakeholders(@RequestParam(required = false) String type) { List stakeholders; @@ -27,6 +64,11 @@ public class StakeholderController { } else { stakeholders = stakeholderDAO.findByType(type); } + + for(Stakeholder stakeholder : stakeholders) { + this.setIndicatorsForStakeholder(stakeholder); + } + return stakeholders; } @@ -38,6 +80,10 @@ public class StakeholderController { } else { stakeholders = stakeholderDAO.findByIsDefaultProfileAndType(true, type); } + + for(Stakeholder stakeholder : stakeholders) { + this.setIndicatorsForStakeholder(stakeholder); + } return stakeholders; } @@ -49,11 +95,375 @@ public class StakeholderController { } else { stakeholders = stakeholderDAO.findByIsDefaultProfileAndType(false, type); } + + for(Stakeholder stakeholder : stakeholders) { + this.setIndicatorsForStakeholder(stakeholder); + } log.debug(new Date()); return stakeholders; } + @RequestMapping(value = "/stakeholder/{alias}", method = RequestMethod.GET) + public Stakeholder getStakeholder(@PathVariable("alias") String alias) { + Stakeholder stakeholder = stakeholderDAO.findByAlias(alias); + this.setIndicatorsForStakeholder(stakeholder); + + return stakeholder; + } + + + @RequestMapping(value = "/stakeholder/save", method = RequestMethod.POST) + public Stakeholder saveStakeholder(@RequestBody Stakeholder stakeholder) { + log.debug("save stakeholder"); + + Stakeholder stakeholderFull = new Stakeholder(stakeholder); + + //this.minimizeIndicatorsForStakeholder(stakeholder); + List topicsFull = new ArrayList<>(); + + for (Topic topic: stakeholder.getTopics()) { + Topic topicFull = new Topic(topic); + + List categoriesFull = new ArrayList<>(); + + for(Category category : topic.getCategories()) { + Category categoryFull = new Category(category); + + List subCategories = new ArrayList<>(); + List subCategoriesFull = new ArrayList<>(); + + for(SubCategory subCategoryFull : category.getSubCategories()) { + SubCategory subCategory = new SubCategory(subCategoryFull); + + List charts = new ArrayList<>(); + + ObjectMapper mapper = new ObjectMapper(); + //Jackson's use of generics + List chartsFull = mapper.convertValue(subCategoryFull.getCharts(), new TypeReference>(){}); + + //List chartsFull = (List)subCategoryFull.getCharts(); + //log.debug(chartsFull); + + for(Indicator indicator : chartsFull) { + charts.add(indicator.getId()); + } + + subCategory.setCharts(charts); + subCategoryFull.setCharts(chartsFull); + + List numbers = new ArrayList<>(); + List numbersFull = mapper.convertValue(subCategoryFull.getNumbers(), new TypeReference>(){}); + + for(Indicator indicator : numbersFull) { + numbers.add(indicator.getId()); + } + subCategory.setNumbers(numbers); + subCategoryFull.setNumbers(numbersFull); + + subCategories.add(subCategory); + subCategoriesFull.add(subCategoryFull); + } + + category.setSubCategories(subCategories); + categoryFull.setSubCategories(subCategoriesFull); + + categoriesFull.add(categoryFull); + } + topicFull.setCategories(categoriesFull); + topicsFull.add(topicFull); + } + stakeholderFull.setTopics(topicsFull); + + log.debug("after minimize stakeholder"); + Stakeholder stakeholderSaved = stakeholderDAO.save(stakeholder); + log.debug("stakeholder saved!"); + + stakeholderFull.setId(stakeholderSaved.getId()); + return stakeholderFull; + } + + @RequestMapping(value = "/{stakeholder}/{topic}/{category}/{subcategory}/indicator/{id}", method = RequestMethod.DELETE) + public boolean deleteIndicator(@PathVariable("stakeholder") String stakeholder, + @PathVariable("topic") String topic, + @PathVariable("category") String category, + @PathVariable("subcategory") String subcategory, + @PathVariable("id") String id) { + + Stakeholder _stakeholder = stakeholderDAO.findByAlias(stakeholder); + if(_stakeholder != null) { + Topic _topic = _stakeholder.getTopics().stream() + .filter(current_topic -> current_topic.getAlias().equals(topic)) + .findFirst() + .orElse(null); + if(_topic != null) { + Category _category = _topic.getCategories().stream() + .filter(current_category -> current_category.getAlias().equals(category)) + .findFirst() + .orElse(null); + if(_category != null) { + SubCategory _subCategory = _category.getSubCategories().stream() + .filter(current_subCategory -> current_subCategory.getAlias().equals(subcategory)) + .findFirst() + .orElse(null); + if(_subCategory != null) { + List indicators = null; + + Indicator indicator = indicatorDAO.findById(id); + if(indicator.hasType("chart")) { + indicators =_subCategory.getCharts(); + } else if(indicator.hasType("number")) { + indicators =_subCategory.getNumbers(); + } + + if(indicators == null) { + // EXCEPTION - No indicators found + } + + //List finalIndicators = indicators; + //log.debug("Indicators size: "+finalIndicators.size()); +// int index = IntStream.range(0, indicators.size()) +// .filter(i -> indicatorId.equals(finalIndicators.get(i))) +// .findFirst() +// .orElse(-1); // return -1 if target is not found + + boolean indicatorFound = false; + Iterator indicatorIterator = indicators.iterator(); + while (indicatorIterator.hasNext()) { + String indicatorId = indicatorIterator.next(); + log.debug(id + " vs "+indicatorId); + if(id.equals(indicatorId)) { + indicatorIterator.remove(); + indicatorFound = true; + break; + } + } + + log.debug(indicatorFound); + if(!indicatorFound) { + return false; + // EXCEPTION - Indicator not found + } + //indicators.remove(index); + + stakeholderDAO.save(_stakeholder); + indicatorDAO.delete(id); + } else { + // EXCEPTION - Subcategory not found + } + } else { + // EXCEPTION - Category not found + } + } else { + // EXCEPTION - Topic not found + } + } else { + // EXCEPTION - Stakeholder not found + } + return true; + } + +// @RequestMapping(value = "/{stakeholder}/{topic}/{category}/{subcategory}/indicator/delete", method = RequestMethod.POST) +// public boolean deleteChartPost(@PathVariable("stakeholder") String stakeholder, +// @PathVariable("topic") String topic, +// @PathVariable("category") String category, +// @PathVariable("subcategory") String subcategory, +// @RequestBody String indicatorId) { +// //String id = chart.getId(); +// return deleteIndicator(stakeholder, topic, category, subcategory, indicatorId); +// } + + + // path variables are alias-es. Each alias must be unique. + @RequestMapping(value = "/{stakeholder}/{topic}/{category}/{subcategory}/indicator/save", method = RequestMethod.POST) + public Indicator saveIndicator(@PathVariable("stakeholder") String stakeholder, + @PathVariable("topic") String topic, + @PathVariable("category") String category, + @PathVariable("subcategory") String subcategory, + @RequestBody Indicator indicator) { + + Indicator indicatorSaved = null; + if(indicator.getId() != null) { + log.debug("indicator is already saved"); + indicatorSaved = indicatorDAO.save(indicator); + } else { + log.debug("to save indicator"); + Stakeholder _stakeholder = stakeholderDAO.findByAlias(stakeholder); + if (_stakeholder != null) { + Topic _topic = _stakeholder.getTopics().stream() + .filter(current_topic -> current_topic.getAlias().equals(topic)) + .findFirst() + .orElse(null); + if (_topic != null) { + Category _category = _topic.getCategories().stream() + .filter(current_category -> current_category.getAlias().equals(category)) + .findFirst() + .orElse(null); + if (_category != null) { + SubCategory _subCategory = _category.getSubCategories().stream() + .filter(current_subCategory -> current_subCategory.getAlias().equals(subcategory)) + .findFirst() + .orElse(null); + if (_subCategory != null) { + indicatorSaved = indicatorDAO.save(indicator); + + List indicators = null; + + if (indicator.hasType("chart")) { + indicators = _subCategory.getCharts(); + } else if (indicator.hasType("number")) { + indicators = _subCategory.getNumbers(); + } + + String indicatorId; + if (indicator.getId() != null) { + indicatorId = indicators.stream() + .filter(current_indicator -> current_indicator.equals(indicator.getId())) + .findFirst() + .orElse(null); + + if (indicatorId == null) { // indicator is not already at this position + indicators.add(indicator.getId()); + } + } + stakeholderDAO.save(_stakeholder); + } else { + // EXCEPTION - Subcategory not found + } + } else { + // EXCEPTION - Category not found + } + } else { + // EXCEPTION - Topic not found + } + } else { + // EXCEPTION - Stakeholder not found + } + } + + return indicatorSaved; + } + + + // The following are not supposed to be used + + // should i delete indicators that were in the list but they are not in the new list? + @RequestMapping(value = "/{stakeholder}/{topic}/{category}/{subcategory}/charts/save", method = RequestMethod.POST) + public List saveCharts(@PathVariable("stakeholder") String stakeholder, + @PathVariable("topic") String topic, + @PathVariable("category") String category, + @PathVariable("subcategory") String subcategory, + @RequestBody List charts) { + log.debug(charts); + log.debug(charts.size()); + log.debug(charts.getClass().getName()); + log.debug(charts.get(0).getClass().getName()); + return saveIndicators(stakeholder, topic, category, subcategory, charts, "chart"); + } + + // should i delete indicators that were in the list but they are not in the new list? + @RequestMapping(value = "/{stakeholder}/{topic}/{category}/{subcategory}/numbers/save", method = RequestMethod.POST) + public List saveNumbers(@PathVariable("stakeholder") String stakeholder, + @PathVariable("topic") String topic, + @PathVariable("category") String category, + @PathVariable("subcategory") String subcategory, + @RequestBody List numbers) { + return saveIndicators(stakeholder, topic, category, subcategory, numbers, "number"); + } + + public List saveIndicators(String stakeholder, String topic, + String category, String subcategory, + List indicators, String type) { + log.debug("to save indicators: "+indicators.size()); + List indicatorsSaved = new ArrayList<>(); + for(Indicator indicator : indicators) { + indicatorsSaved.add(indicatorDAO.save(indicator)); + } + log.debug("saved indicators: "+indicators.size()); + + Stakeholder _stakeholder = stakeholderDAO.findByAlias(stakeholder); + if(_stakeholder != null) { + Topic _topic = _stakeholder.getTopics().stream() + .filter(current_topic -> current_topic.getAlias().equals(topic)) + .findFirst() + .orElse(null); + if(_topic != null) { + Category _category = _topic.getCategories().stream() + .filter(current_category -> current_category.getAlias().equals(category)) + .findFirst() + .orElse(null); + if(_category != null) { + SubCategory _subCategory = _category.getSubCategories().stream() + .filter(current_subCategory -> current_subCategory.getAlias().equals(subcategory)) + .findFirst() + .orElse(null); + if(_subCategory != null) { + List _indicators = null; + if(type.equals("chart")) { + _indicators = _subCategory.getCharts(); + } else if(type.equals("number")) { + _indicators = _subCategory.getNumbers(); + } + + _indicators.clear(); + for(Indicator indicator : indicators) { + _indicators.add(indicator.getId()); + } + stakeholderDAO.save(_stakeholder); + } else { + // EXCEPTION - Subcategory not found + } + } else { + // EXCEPTION - Vategory not found + } + } else { + // EXCEPTION - Topic not found + } + } else { + // EXCEPTION - Stakeholder not found + } + + return indicatorsSaved; + } + + + + // Remember to check if alias is not already used before saving + @RequestMapping(value = "/{stakeholder}/topic/save", method = RequestMethod.POST) + public Stakeholder saveTopic(@PathVariable("stakeholder") String stakeholder, + @RequestBody Topic topic) { + Stakeholder stakeholderSaved = null; + Stakeholder _stakeholder = stakeholderDAO.findByAlias(stakeholder); + if (stakeholder != null) { + List topics = _stakeholder.getTopics(); + Topic _topic = topics.stream() + .filter(current_topic -> current_topic.getAlias().equals(topic.getAlias())) + .findFirst() + .orElse(null); + if(_topic != null) { + _topic = topic; + } else { + topics.add(topic); + _stakeholder.setTopics(topics); + } + stakeholderSaved = stakeholderDAO.save(_stakeholder); + } + return stakeholderSaved; + } + + @RequestMapping(value = "/{stakeholder}/topics/save", method = RequestMethod.POST) + public Stakeholder saveTopics(@PathVariable("stakeholder") String stakeholder, + @RequestBody List topics) { + Stakeholder stakeholderSaved = null; + Stakeholder _stakeholder = stakeholderDAO.findByAlias(stakeholder); + if (stakeholder != null) { + _stakeholder.setTopics(topics); + stakeholderSaved = stakeholderDAO.save(_stakeholder); + } + return stakeholderSaved; + } + + @RequestMapping(value = "/stakeholder/dates", method = RequestMethod.GET) public List getAllStakeholderDates() { List profiles = stakeholderDAO.findAll(); @@ -93,14 +503,4 @@ public class StakeholderController { } return profileDates; } - - - @RequestMapping(value = "/stakeholder/save", method = RequestMethod.POST) - public Stakeholder insertStakeholder(@RequestBody Stakeholder stakeholder) { - //Stakeholder stakeholder = new Stakeholder(); - - Stakeholder stakeholderSaved = stakeholderDAO.save(stakeholder); - - return stakeholderSaved; - } } diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/dao/MongoDBStakeholderDAO.java b/src/main/java/eu/dnetlib/uoamonitorservice/dao/MongoDBStakeholderDAO.java index c2ab289..ec32805 100644 --- a/src/main/java/eu/dnetlib/uoamonitorservice/dao/MongoDBStakeholderDAO.java +++ b/src/main/java/eu/dnetlib/uoamonitorservice/dao/MongoDBStakeholderDAO.java @@ -7,10 +7,12 @@ import java.util.List; public interface MongoDBStakeholderDAO extends StakeholderDAO, MongoRepository { List findAll(); - List findByType(String type); + List findByType(String Type); - List findByIsDefaultProfile(boolean isDefaultProfile); - List findByIsDefaultProfileAndType(boolean isDefaultProfile, String type); + List findByIsDefaultProfile(boolean IsDefaultProfile); + List findByIsDefaultProfileAndType(boolean IsDefaultProfile, String Type); + + Stakeholder findByAlias(String Alias); Stakeholder save(Stakeholder stakeholder); } diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/dao/StakeholderDAO.java b/src/main/java/eu/dnetlib/uoamonitorservice/dao/StakeholderDAO.java index 0095b5b..d356421 100644 --- a/src/main/java/eu/dnetlib/uoamonitorservice/dao/StakeholderDAO.java +++ b/src/main/java/eu/dnetlib/uoamonitorservice/dao/StakeholderDAO.java @@ -6,10 +6,12 @@ import java.util.List; public interface StakeholderDAO { List findAll(); - List findByType(String type); + List findByType(String Type); - List findByIsDefaultProfile(boolean isDefaultProfile); - List findByIsDefaultProfileAndType(boolean isDefaultProfile, String type); + List findByIsDefaultProfile(boolean IsDefaultProfile); + List findByIsDefaultProfileAndType(boolean IsDefaultProfile, String Type); + + Stakeholder findByAlias(String Alias); Stakeholder save(Stakeholder stakeholder); } diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/entities/Category.java b/src/main/java/eu/dnetlib/uoamonitorservice/entities/Category.java index cb4fce1..834b92b 100644 --- a/src/main/java/eu/dnetlib/uoamonitorservice/entities/Category.java +++ b/src/main/java/eu/dnetlib/uoamonitorservice/entities/Category.java @@ -5,12 +5,20 @@ import java.util.List; public class Category { private String name; private String alias; - private String description; private boolean isActive; private boolean isPublic; private boolean isOverview; private List subCategories; + public Category() {} + public Category(Category category) { + name = category.getName(); + alias = category.getAlias(); + isActive = category.getIsActive(); + isPublic = category.getIsPublic(); + isOverview = category.getIsOverview(); + } + public String getName() { return name; } @@ -27,36 +35,28 @@ public class Category { this.alias = alias; } - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public boolean isActive() { + public boolean getIsActive() { return isActive; } - public void setActive(boolean active) { - isActive = active; + public void setIsActive(boolean isActive) { + this.isActive = isActive; } - public boolean isPublic() { + public boolean getIsPublic() { return isPublic; } - public void setPublic(boolean aPublic) { - isPublic = aPublic; + public void setIsPublic(boolean isPublic) { + this.isPublic = isPublic; } - public boolean isOverview() { + public boolean getIsOverview() { return isOverview; } - public void setOverview(boolean overview) { - isOverview = overview; + public void setIsOverview(boolean isOverview) { + this.isOverview = isOverview; } public List getSubCategories() { diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/entities/Indicator.java b/src/main/java/eu/dnetlib/uoamonitorservice/entities/Indicator.java index 737eda2..f778da1 100644 --- a/src/main/java/eu/dnetlib/uoamonitorservice/entities/Indicator.java +++ b/src/main/java/eu/dnetlib/uoamonitorservice/entities/Indicator.java @@ -77,27 +77,31 @@ public class Indicator { this.tags = tags; } - public boolean isActive() { + public boolean getIsActive() { return isActive; } - public void setActive(boolean isActive) { + public void setIsActive(boolean isActive) { this.isActive = isActive; } - public boolean isPublic() { + public boolean getIsPublic() { return isPublic; } - public void setPublic(boolean isPublic) { + public void setIsPublic(boolean isPublic) { this.isPublic = isPublic; } - public List getNdicatorPaths() { + public List getIndicatorPaths() { return indicatorPaths; } - public void setNdicatorPaths(List ndicatorPaths) { - this.indicatorPaths = ndicatorPaths; + public void setIndicatorPaths(List indicatorPaths) { + this.indicatorPaths = indicatorPaths; + } + + public boolean hasType(String str) { + return this.type.equals(str); } } diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/entities/IndicatorPath.java b/src/main/java/eu/dnetlib/uoamonitorservice/entities/IndicatorPath.java index 2161998..2df042b 100644 --- a/src/main/java/eu/dnetlib/uoamonitorservice/entities/IndicatorPath.java +++ b/src/main/java/eu/dnetlib/uoamonitorservice/entities/IndicatorPath.java @@ -1,10 +1,11 @@ package eu.dnetlib.uoamonitorservice.entities; import java.util.List; +import java.util.Map; enum IndicatorPathType { // Do not rename or remove existring values. This may cause problems with already stored values in DB - table, bar, column; + table, bar, column, pie, line, image; } public class IndicatorPath { @@ -12,6 +13,9 @@ public class IndicatorPath { private String source; // for numbers is the service {statistics, search, metrics} for charts is the tool {stats-tool,old,metrics, fake} private String url; private List jsonPath; + private String chartObject; + private Map parameters; + private Map> filters; public IndicatorPathType getType() { return type; @@ -44,4 +48,28 @@ public class IndicatorPath { public void setJsonPath(List jsonPath) { this.jsonPath = jsonPath; } + + public String getChartObject() { + return chartObject; + } + + public void setChartObject(String chartObject) { + this.chartObject = chartObject; + } + + public Map getParameters() { + return parameters; + } + + public void setParameters(Map parameters) { + this.parameters = parameters; + } + + public Map> getFilters() { + return filters; + } + + public void setFilters(Map> filters) { + this.filters = filters; + } } diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/entities/Stakeholder.java b/src/main/java/eu/dnetlib/uoamonitorservice/entities/Stakeholder.java index 38e90b5..c9a3477 100644 --- a/src/main/java/eu/dnetlib/uoamonitorservice/entities/Stakeholder.java +++ b/src/main/java/eu/dnetlib/uoamonitorservice/entities/Stakeholder.java @@ -33,6 +33,21 @@ public class Stakeholder { private List topics; + public Stakeholder() {} + public Stakeholder(Stakeholder stakeholder) { + type = stakeholder.getType(); + index_id = stakeholder.getIndex_id(); + index_name = stakeholder.getIndex_name(); + index_shortName = stakeholder.getIndex_shortName(); + alias = stakeholder.getAlias(); + isDefaultProfile = stakeholder.getIsDefaultProfile(); + isActive = stakeholder.getIsActive(); + isPublic = stakeholder.getIsPublic(); + creationDate = stakeholder.getCreationDate(); + updateDate = stakeholder.getUpdateDate(); + managers = stakeholder.getManagers(); + } + public String getId() { return id; } @@ -81,28 +96,28 @@ public class Stakeholder { this.alias = alias; } - public boolean isDefaultProfile() { + public boolean getIsDefaultProfile() { return isDefaultProfile; } - public void setDefaultProfile(boolean defaultProfile) { - isDefaultProfile = defaultProfile; + public void setIsDefaultProfile(boolean isDefaultProfile) { + this.isDefaultProfile = isDefaultProfile; } - public boolean isActive() { + public boolean getIsActive() { return isActive; } - public void setActive(boolean active) { - isActive = active; + public void setIsActive(boolean isActive) { + this.isActive = isActive; } - public boolean isPublic() { + public boolean getIsPublic() { return isPublic; } - public void setPublic(boolean aPublic) { - isPublic = aPublic; + public void setIsPublic(boolean isPublic) { + this.isPublic = isPublic; } public Date getCreationDate() { diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/entities/SubCategory.java b/src/main/java/eu/dnetlib/uoamonitorservice/entities/SubCategory.java index e07cec8..eed08d4 100644 --- a/src/main/java/eu/dnetlib/uoamonitorservice/entities/SubCategory.java +++ b/src/main/java/eu/dnetlib/uoamonitorservice/entities/SubCategory.java @@ -2,14 +2,21 @@ package eu.dnetlib.uoamonitorservice.entities; import java.util.List; -public class SubCategory { +public class SubCategory { private String name; private String alias; - private String description; private boolean isActive; private boolean isPublic; - private List charts; - private List numbers; + private List charts; + private List numbers; + + public SubCategory() {} + public SubCategory(SubCategory subCategory) { + name = subCategory.getName(); + alias = subCategory.getAlias(); + isActive = subCategory.getIsActive(); + isPublic = subCategory.getIsPublic(); + } public String getName() { return name; @@ -27,43 +34,35 @@ public class SubCategory { this.alias = alias; } - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public boolean isActive() { + public boolean getIsActive() { return isActive; } - public void setActive(boolean active) { - isActive = active; + public void setIsActive(boolean isActive) { + this.isActive = isActive; } - public boolean isPublic() { + public boolean getIsPublic() { return isPublic; } - public void setPublic(boolean aPublic) { - isPublic = aPublic; + public void setIsPublic(boolean isPublic) { + this.isPublic = isPublic; } - public List getCharts() { + public List getCharts() { return charts; } - public void setCharts(List charts) { + public void setCharts(List charts) { this.charts = charts; } - public List getNumbers() { + public List getNumbers() { return numbers; } - public void setNumbers(List numbers) { + public void setNumbers(List numbers) { this.numbers = numbers; } } diff --git a/src/main/java/eu/dnetlib/uoamonitorservice/entities/Topic.java b/src/main/java/eu/dnetlib/uoamonitorservice/entities/Topic.java index 3654d4a..b77d687 100644 --- a/src/main/java/eu/dnetlib/uoamonitorservice/entities/Topic.java +++ b/src/main/java/eu/dnetlib/uoamonitorservice/entities/Topic.java @@ -10,6 +10,15 @@ public class Topic { private boolean isPublic; private List categories; + public Topic() {} + public Topic(Topic topic) { + name = topic.getName(); + alias = topic.getAlias(); + description = topic.getDescription(); + isActive = topic.getIsActive(); + isPublic = topic.getIsPublic(); + } + public String getName() { return name; } @@ -34,20 +43,20 @@ public class Topic { this.description = description; } - public boolean isActive() { + public boolean getIsActive() { return isActive; } - public void setActive(boolean active) { - isActive = active; + public void setIsActive(boolean isActive) { + this.isActive = isActive; } - public boolean isPublic() { + public boolean getIsPublic() { return isPublic; } - public void setPublic(boolean aPublic) { - isPublic = aPublic; + public void setIsPublic(boolean isPublic) { + this.isPublic = isPublic; } public List getCategories() {