package org.lazydoc.model; import org.apache.commons.lang3.StringUtils; import java.util.*; public class DocDomain { protected String domain = ""; protected String domainShortDescription = ""; private String description = ""; private int order = 1; private List<DocExternalDocumentation> externalDocumentations = new ArrayList<>(); private Set<DocOperation> operations = new TreeSet<>(); private Map<Integer, DocSubDomain> subDomains = new TreeMap<>(); private Set<DocError> errorList = new TreeSet<>(); private boolean deprecated = false; public String getDomain() { return domain; } public void setDomain(String name) { this.domain = name; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public void setDomainShortDescription(String domainShortDescription) { this.domainShortDescription = domainShortDescription; } public int getOrder() { return order; } public void setOrder(int order) { this.order = order; } public Map<Integer, DocSubDomain> getSubDomains() { return subDomains; } public void setSubDomains(Map<Integer, DocSubDomain> subDomains) { this.subDomains = subDomains; } public Set<DocOperation> getOperations() { return operations; } public void setOperations(Set<DocOperation> operations) { this.operations = operations; } public List<DocExternalDocumentation> getExternalDocumentations() { return externalDocumentations; } public void setExternalDocumentations(List<DocExternalDocumentation> externalDocumentations) { this.externalDocumentations = externalDocumentations; } public Set<DocError> getErrorList() { Set<DocError> errors = new TreeSet<>(); for (DocOperation operation : operations) { for (DocError docError : operation.getErrorList()) { errors.add(docError); } } TreeSet<DocError> cleanedErrorList = new TreeSet<>(errorList); cleanedErrorList.removeAll(errors); return cleanedErrorList; } public void setErrorList(Set<DocError> errorList) { if(!errorList.isEmpty()) { this.errorList = errorList; } } public void addSubDomain(DocSubDomain subDomain) { this.getSubDomains().put(subDomain.getOrder(), subDomain); } public void addDocError(DocError error) { errorList.add(error); } public String getDomainShortDescription() { if (StringUtils.isNotBlank(domainShortDescription)) { return domainShortDescription; } return domain; } public boolean hasExternalDocumentation() { return !externalDocumentations.isEmpty(); } public boolean isDeprecated() { return deprecated; } public void setDeprecated(boolean deprecated) { this.deprecated = deprecated; } @Override public String toString() { return "DocDomain{" + "domain='" + domain + '\'' + ", domainShortDescription='" + domainShortDescription + '\'' + ", description='" + description + '\'' + ", order=" + order + ", externalDocumentations=" + externalDocumentations + ", operations=" + operations + ", subDomains=" + subDomains + ", errorList=" + errorList + ", deprecated=" + deprecated + '}'; } }