Tuesday, May 24, 2022

Java 8 streams

String[] keys = Arrays.stream(ShareModeType.values()).map(ShareModeType::getCode).toArray(String[]::new);

Optional<String> match = Arrays.stream(keys).filter(shareMode::equals).findAny();

actionTypeList = Stream.of(ActionType.values()).map(ActionType::getId).collect(Collectors.toSet());

public enum ResultStatusCode {
SUCCESS("I-FCP-REGREPO-0000", "Success", "Success"),
FAIL("F-FCP-REGREPO-0001", "Failed", "Failed"),
CUSIP_INVALID("F-FCP-REGREPO-0002", "Validation Error", "Invalid CUSIP"),
CUSIP_EMPTY("F-FCP-REGREPO-0003", "Validation Error", "Missing CUSIP"),
E_IND("F-FCP-REGREPO-0004", "Validation Error", "Invalid eIndicator"),
SRC_SYS_IND("F-FCP-REGREPO-0005", "Validation Error", "Invalid srcSysIndicator"),
FUND_TY("F-FCP-REGREPO-0006", "Validation Error", "Invalid Fund Type"),
CORE_TY("F-FCP-REGREPO-0007", "Validation Error", "Invalid Core Type"),
EFF_DATE("F-FCP-REGREPO-0008", "Validation Error", "Invalid date range"),
VER_DATE("F-FCP-REGREPO-0009", "Validation Error", "Invalid version date range"),
ORDER_BY("F-FCP-REGREPO-0010", "Validation Error", "Invalid Orderby"),
ORDER_DIR("F-FCP-REGREPO-0011", "Validation Error", "Invalid Order Direction"),
LIMIT_VAL("F-FCP-REGREPO-0012", "Validation Error", "Invalid limit"),
OFFSET_VAL("F-FCP-REGREPO-0013", "Validation Error", "Invalid offset value"),
DOC_EVENT_IND("F-FCP-REGREPO-0014", "Validation Error", "Invalid docEventIndicator"),
DOC_TY("F-FCP-REGREPO-0015", "Validation Error", "Invalid Document Type"),

PROCESSDATE_INVALID("F-FCP-REGREPO-0016", "Validation Error", "Invalid Process Date"),
PROCESSDATE_EMPTY("F-FCP-REGREPO-0017", "Validation Error", "Missing Process Date"),
GENERIC_ERR_MSG("F-FCP-REGREPO-0018", "System unavailable", "System unavailable");
//DB_EXC_ERR("F-FCP-REGREPO-0019", "Database Exception", "Database Exception"),


private final String code;
private final String title;
private final String detail;

private static Map<String, ResultStatusCode> map = new HashMap<String, ResultStatusCode>();

private ResultStatusCode(String code, String title, String detail) {
    this.code = code;
    this.title = title;
    this.detail = detail;
}

public String getTitle() {
return title;
}

public String getCode() {
return code;
}

public String getDetail() {
return detail;
}

static {
        for (ResultStatusCode resultStatusCode : ResultStatusCode.values()) {
            map.put(resultStatusCode.code, resultStatusCode);
        }
    }

public static ResultStatusCode valueOfGivenCode(String code) {
        return map.get(code);
    }

@Override
public String toString() {
return code + ": " + title;
}
}




https://howtodoinjava.com/swagger2/swagger-spring-mvc-rest-example/




List <ResultStatusCode> filteredList = errorList.stream().filter(x -> x.getTitle().equalsIgnoreCase("Validation Error")).collect(Collectors.toList());


static final String[] ORDERBY_ARRAY = { "CUSIP", "FUND_IND", "EFF_D", "VERSION_D", "E_FUND_IND", "DOC_TY_C",
"CORE_FUND_IND", "ACCESSKEY", "SRC_SYS_IND", "DOC_UPD_IND", "EXP_D" };



if (StringUtils.isNotEmpty(cusipParameters.getOrderBy())) {
if (!Arrays.stream(ORDERBY_ARRAY).anyMatch(cusipParameters.getOrderBy()::equals))
return ErrorCode.ORDER_BY;
}



public boolean RegexValidation(String cusip) {
String regex = "^[a-zA-Z0-9]{9}";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(cusip);

return matcher.matches();
}

public boolean DateValidation(String date) {
String rgx = "^((?:(?:1[6-9]|[2-9]\\d)?\\d{4})(-)(?:(?:(?:0[13578]|1[02])(-)31)|((0[1,3-9]|1[0-2])(-)(29|30))))$|^(?:(?:(?:(?:1[6-9]|[2-9]\\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(-)02(-)29)$|^(?:(?:1[6-9]|[2-9]\\d)?\\d{4})(-)(?:(?:0[1-9])|(?:1[0-2]))(-)(?:0[1-9]|1\\d|2[0-8])$";
Pattern pattern = Pattern.compile(rgx);
Matcher matcher = pattern.matcher(date);
return matcher.matches();
}



public boolean DateRangeValidation(String fromDate, String toDate) {
try {
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(fromDate);
Date date2 = new SimpleDateFormat("yyyy-MM-dd").parse(toDate);

if (date1.equals(date2))
return true;
else
return date1.before(date2);
} catch (Exception e) {
return false;
}
}