package kr.wisestone.owl.web.condition; import com.google.common.collect.Lists; import kr.wisestone.owl.domain.enumType.CustomFieldType; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; import org.apache.commons.lang3.StringUtils; import java.util.List; import java.util.Map; /** * 이슈 사용자 정의 필드 값 검색 조건 클래스 * Created by wisestone on 2018-06-07. */ public class IssueCustomFieldValueCondition { private Long issueTypeId; private Long workspaceId; private Long customFieldId; private String customFieldType; /** * 사용자 정의 필드 사용 값 */ private List useValues = Lists.newArrayList(); /** * 텍스트 필드일 때 검색 값 */ private String useValue; private boolean useParentIssueId = true; /** * 이슈 상태 유형(READY / OPEN / CLOSE) */ private String issueStatusType; public IssueCustomFieldValueCondition(){} public static IssueCustomFieldValueCondition make(Map conditions) { IssueCustomFieldValueCondition condition = ConvertUtil.convertMapToClass(conditions, IssueCustomFieldValueCondition.class); CustomFieldType customFieldType = CustomFieldType.valueOf(condition.getCustomFieldType()); switch(customFieldType) { case INPUT: case NUMBER: case DATETIME: case IP_ADDRESS: case EMAIL: case SITE: case TEL: if (MapUtil.getStrings(conditions, "useValues") != null) { // 공백이 아닌 문자가 들어있을 때만 useValues 값 으로 셋팅한다. for (String useValue : MapUtil.getStrings(conditions, "useValues")) { // 텍스트 필드는 1개밖에 안들어온다. if (!StringUtils.isEmpty(useValue)) { condition.setUseValue(useValue); } } } break; case SINGLE_SELECT: case MULTI_SELECT: if (MapUtil.getStrings(conditions, "useValues") != null) { // 공백이 아닌 문자가 들어있을 때만 useValues 값 으로 셋팅한다. for (String useValue : MapUtil.getStrings(conditions, "useValues")) { if (!StringUtils.isEmpty(useValue)) { condition.addUseValue(useValue); } } } break; } return condition; } public String getIssueStatusType() { return issueStatusType; } public void setIssueStatusType(String issueStatusType) { this.issueStatusType = issueStatusType; } public Long getIssueTypeId() { return issueTypeId; } public void setIssueTypeId(Long issueTypeId) { this.issueTypeId = issueTypeId; } public Long getWorkspaceId() { return workspaceId; } public void setWorkspaceId(Long workspaceId) { this.workspaceId = workspaceId; } public Long getCustomFieldId() { return customFieldId; } public void setCustomFieldId(Long customFieldId) { this.customFieldId = customFieldId; } public List getUseValues() { return useValues; } public void setUseValues(List useValues) { this.useValues = useValues; } public void addUseValue(String useValue) { this.useValues.add(useValue); } public String getUseValue() { return useValue; } public void setUseValue(String useValue) { this.useValue = useValue; } public String getCustomFieldType() { return customFieldType; } public void setCustomFieldType(String customFieldType) { this.customFieldType = customFieldType; } public boolean isUseParentIssueId() { return useParentIssueId; } public void setUseParentIssueId(boolean useParentIssueId) { this.useParentIssueId = useParentIssueId; } }