package com.constellio.app.modules.rm.wrappers;
import java.util.List;
import com.constellio.app.modules.rm.model.CopyRetentionRule;
import com.constellio.app.modules.rm.model.CopyRetentionRuleInRule;
import com.constellio.app.modules.rm.wrappers.structures.Comment;
import com.constellio.model.entities.records.Record;
import com.constellio.model.entities.records.wrappers.RecordWrapper;
import com.constellio.model.entities.schemas.MetadataSchemaTypes;
import com.constellio.model.entities.schemas.Schemas;
public class Category extends RecordWrapper {
public static final String SCHEMA_TYPE = "category";
public static final String DEFAULT_SCHEMA = SCHEMA_TYPE + "_default";
public static final String CODE = "code";
public static final String DESCRIPTION = "description";
public static final String PARENT = "parent";
public static final String KEYWORDS = "keywords";
public static final String DEACTIVATE = "deactivate";
public static final String COMMENTS = "comments";
public static final String DEFAULT_COPY_RULE_ID = "defaultCopyRuleIdentifier";
public static final String DEFAULT_COPY_RULE = "defaultCopyRule";
public static final String DEFAULT_RETENTION_RULE = "defaultRetentionRule";
public static final String RETENTION_RULES = "retentionRules";
public static final String LEVEL = "level";
public static final String COPY_RETENTION_RULES_ON_DOCUMENT_TYPES = "copyRetentionRulesOnDocumentTypes";
public Category(Record record,
MetadataSchemaTypes types) {
super(record, types, SCHEMA_TYPE);
}
public Category setTitle(String title) {
super.setTitle(title);
return this;
}
public String getParent() {
return get(PARENT);
}
public Category setParent(Category category) {
set(PARENT, category);
return this;
}
public Category setParent(Record category) {
set(PARENT, category);
return this;
}
public Category setParent(String category) {
set(PARENT, category);
return this;
}
public String getDefaultCopyRuleId() {
return get(DEFAULT_COPY_RULE_ID);
}
public Category setDefaultCopyRuleId(CopyRetentionRule copy) {
set(DEFAULT_COPY_RULE_ID, copy == null ? null : copy.getId());
return this;
}
public Category setDefaultCopyRuleId(String id) {
set(DEFAULT_COPY_RULE_ID, id);
return this;
}
public String getDefaultRetentionRule() {
return get(DEFAULT_RETENTION_RULE);
}
public CopyRetentionRule getDefaultCopyRule() {
return get(DEFAULT_COPY_RULE);
}
public String getCode() {
return get(CODE);
}
public Category setCode(String code) {
set(CODE, code);
return this;
}
public String getDescription() {
return get(DESCRIPTION);
}
public Category setDescription(String description) {
set(DESCRIPTION, description);
return this;
}
public List<String> getKeywords() {
return getList(KEYWORDS);
}
public Category setKeywords(List<String> keywords) {
set(KEYWORDS, keywords);
return this;
}
public List<Comment> getComments() {
return getList(COMMENTS);
}
public Category setComments(List<Comment> comments) {
set(COMMENTS, comments);
return this;
}
public Category setRetentionRules(List<?> retentionRules) {
set(RETENTION_RULES, retentionRules);
return this;
}
public List<String> getRententionRules() {
return getList(RETENTION_RULES);
}
public boolean isLinkable() {
return getBooleanWithDefaultValue(Schemas.LINKABLE.getLocalCode(), true);
}
public int getLevel() {
return getInteger(LEVEL);
}
public List<CopyRetentionRuleInRule> getCopyRetentionRulesOnDocumentTypes() {
return getList(COPY_RETENTION_RULES_ON_DOCUMENT_TYPES);
}
public static Category wrap(Record record, MetadataSchemaTypes types) {
return record == null ? null : new Category(record, types);
}
}