Package kr.com.inspect.service.impl
Class RuleServiceImpl
- java.lang.Object
-
- kr.com.inspect.service.impl.RuleServiceImpl
-
- All Implemented Interfaces:
RuleService
@Service @PropertySource("classpath:properties/directory.properties") public class RuleServiceImpl extends java.lang.Object implements RuleService전사규칙에 관한 Service 구현 클래스- Version:
- 1.0
- Author:
- Yeonhee Kim
-
-
Constructor Summary
Constructors Constructor Description RuleServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcloseThread(java.util.concurrent.ExecutorService executor, java.util.List<java.util.concurrent.Future<?>> futures)스레드 작업이 종료될 때까지 기다리고 Task를 종료함intdeleteCustomLibrary(CustomLibrary customLibrary)해당되는 커스텀 라이브러리 파일을 삭제하고 DB에서도 삭제함voiddeleteJavaClassFile(java.lang.String fileName)자바 파일과 클래스 파일을 삭제함(삭제하지 않으면 컴파일 오류시 이전에 컴파일 성공한 클래스 파일을 읽음)intdeleteRule(java.lang.String level, Rule rule)대분류/중분류/소분류 아이디로 해당되는 항목을 삭제함java.util.List<CustomLibrary>getAllCustomLibraryByCreator(java.lang.String creator)사용자 아이디로 사용자가 추가한 커스텀 라이브러리 목록을 가져옴java.util.List<RuleLog>getAllRuleLogDetailByUsingLogNo(int using_log_no)사용 기록 번호로 디테일한 룰 로그 목록을 가져옴java.util.Map<java.lang.String,java.lang.Object>getApiDesc(int class_id)클래스 아이디로 클래스 정보, 필드 정보, 생성자 정보, 메소드 정보를 가져옴ResponseDatagetPrevRuleVersionList(int bottom_level_id, java.lang.String function_name, int current_page_no, int count_per_page, int count_per_list, java.lang.String search_word)해당되는 룰의 버전 관리 목록을 페이징 처리하여 가져옴RulegetRuleBottomLevel(int bottom_level_id)bottom level id 로 룰 가져오기java.util.List<Rule>getRuleCategory(java.lang.String top_level_id, java.lang.String middle_level_id)전사규칙 대분류, 중분류, 소분류 카테고리 리스트를 반환함java.util.List<Rule>getRuleChange(int bottom_level_id, int prev_bottom_level_id)룰의 버전별 변화(수정 전/수정 후)를 가져옴java.util.List<Rule>getRuleList(java.lang.String top_level_id, java.lang.String middle_level_id, java.lang.String bottom_level_id)해당되는 전사규칙 리스트를 가지고 옴ResponseDatagetRuleListByPaging(java.lang.String rule_type, java.lang.String top_level_id, java.lang.String middle_level_id, java.lang.String bottom_level_id, java.lang.String function_name, int current_page_no, int count_per_page, int count_per_list, java.lang.String search_word)선택된 카테고리에 해당되는 전사규칙 리스트를 조인해서 가져옴ResponseDatagetRuleLog(int using_log_no, java.lang.String function_name, int current_page_no, int count_per_page, int count_per_list, java.lang.String search_word, java.lang.String log_type, java.util.Map<java.lang.String,java.lang.Object> searchMap)룰 로그 테이블을 페이징 처리하여 가져옴java.lang.StringgetStringOfException(java.lang.Exception e)예외 발생시 예외를 문자열로 바꿔서 리턴함java.lang.StringregisterCustomLibrary(CustomLibrary customLibrary)사용자가 import하고자 하는 커스텀 라이브러리를 등록함intregisterRule(java.lang.String level, Rule rule)대분류/중분류/소분류를 DB에 등록함voidrunRuleCompiler(java.util.List<Rule> list)Rule 클래스 파일을 실행시킴java.util.Map<java.lang.String,java.lang.Object>updateRuleContents(java.lang.String presentVersion, Rule rule)사용자가 입력한 Rule 코드를 DB에 업데이트함voiduploadCustomLibrary(java.util.List<org.springframework.web.multipart.MultipartFile> customFile, java.lang.String class_package)사용자가 import하고자 하는 커스텀 라이브러리 파일을 업로드함
-
-
-
Method Detail
-
getRuleCategory
public java.util.List<Rule> getRuleCategory(java.lang.String top_level_id, java.lang.String middle_level_id)
전사규칙 대분류, 중분류, 소분류 카테고리 리스트를 반환함- Specified by:
getRuleCategoryin interfaceRuleService- Parameters:
top_level_id- 전사규칙 대분류 아이디middle_level_id- 전사규칙 중분류 아이디- Returns:
- 전사규칙 대분류, 중분류, 소분류 카테고리 리스트
-
getRuleList
public java.util.List<Rule> getRuleList(java.lang.String top_level_id, java.lang.String middle_level_id, java.lang.String bottom_level_id)
해당되는 전사규칙 리스트를 가지고 옴- Specified by:
getRuleListin interfaceRuleService- Parameters:
top_level_id- 전사규칙 대분류 아이디middle_level_id- 전사규칙 중분류 아이디bottom_level_id- 전사규칙 소분류 아이디- Returns:
- 해당되는 전사규칙 리스트
-
getRuleListByPaging
public ResponseData getRuleListByPaging(java.lang.String rule_type, java.lang.String top_level_id, java.lang.String middle_level_id, java.lang.String bottom_level_id, java.lang.String function_name, int current_page_no, int count_per_page, int count_per_list, java.lang.String search_word)
선택된 카테고리에 해당되는 전사규칙 리스트를 조인해서 가져옴- Specified by:
getRuleListByPagingin interfaceRuleService- Parameters:
rule_type- 룰 타입(전체/SQL/메서드)top_level_id- 전사규칙 대분류 아이디middle_level_id- 전사규칙 중분류 아이디bottom_level_id- 전사규칙 소분류 아이디function_name- 페이지의 번호를 클릭했을 때 호출되는 자바스크립트 함수명 또는 게시글 조회를 요청하는 함수명을 저장할 변수current_page_no- 현재 화면에 출력되고 있는 페이지 번호 또는 페이지의 번호를 클릭했을 때에 번호를 저장할 변수count_per_page- 한 화면에 출력되는 페이지의 수를 저장할 변수count_per_list- 한 화면에 출력되는 게시글의 수를 저장할 변수search_word- 검색어- Returns:
- 선택된 카테고리에 해당되는 전사규칙 테이블
-
getRuleLog
public ResponseData getRuleLog(int using_log_no, java.lang.String function_name, int current_page_no, int count_per_page, int count_per_list, java.lang.String search_word, java.lang.String log_type, java.util.Map<java.lang.String,java.lang.Object> searchMap)
룰 로그 테이블을 페이징 처리하여 가져옴- Specified by:
getRuleLogin interfaceRuleService- Parameters:
using_log_no- RuleLog 테이블의 외래키인 using_log_nofunction_name- 페이지의 번호를 클릭했을 때 호출되는 자바스크립트 함수명 또는 게시글 조회를 요청하는 함수명을 저장할 변수current_page_no- 현재 화면에 출력되고 있는 페이지 번호 또는 페이지의 번호를 클릭했을 때에 번호를 저장할 변수count_per_page- 한 화면에 출력되는 페이지의 수를 저장할 변수count_per_list- 한 화면에 출력되는 게시글의 수를 저장할 변수search_word- 검색어log_type- 상세 검색 타입(사용자 아이디/사용 내역/IP 주소/접속 시간) 중 하나searchMap- 상세 검색어(사용자 아이디/사용 내역/IP 주소/접속 시간) 값을 담고 있는 Map- Returns:
- 룰 로그 테이블
-
getPrevRuleVersionList
public ResponseData getPrevRuleVersionList(int bottom_level_id, java.lang.String function_name, int current_page_no, int count_per_page, int count_per_list, java.lang.String search_word)
해당되는 룰의 버전 관리 목록을 페이징 처리하여 가져옴- Specified by:
getPrevRuleVersionListin interfaceRuleService- Parameters:
bottom_level_id- 룰 소분류 아이디function_name- 페이지의 번호를 클릭했을 때 호출되는 자바스크립트 함수명 또는 게시글 조회를 요청하는 함수명을 저장할 변수current_page_no- 현재 화면에 출력되고 있는 페이지 번호 또는 페이지의 번호를 클릭했을 때에 번호를 저장할 변수count_per_page- 한 화면에 출력되는 페이지의 수를 저장할 변수count_per_list- 한 화면에 출력되는 게시글의 수를 저장할 변수search_word- 검색어- Returns:
- 해당되는 룰의 버전 관리 목록
-
getRuleChange
public java.util.List<Rule> getRuleChange(int bottom_level_id, int prev_bottom_level_id)
룰의 버전별 변화(수정 전/수정 후)를 가져옴- Specified by:
getRuleChangein interfaceRuleService- Parameters:
bottom_level_id- 룰 소분류 아이디prev_bottom_level_id- 룰 버전 관리 목록 아이디- Returns:
- 룰의 버전별 변화(수정 전/수정 후)
-
getAllRuleLogDetailByUsingLogNo
public java.util.List<RuleLog> getAllRuleLogDetailByUsingLogNo(int using_log_no)
사용 기록 번호로 디테일한 룰 로그 목록을 가져옴- Specified by:
getAllRuleLogDetailByUsingLogNoin interfaceRuleService- Parameters:
using_log_no- 사용 기록 번호- Returns:
- 디테일한 룰 로그 목록
-
registerRule
public int registerRule(java.lang.String level, Rule rule)대분류/중분류/소분류를 DB에 등록함- Specified by:
registerRulein interfaceRuleService- Parameters:
level- 해당되는 분류(대분류/중분류/소분류)rule- DB 등록을 위한 Rule 객체- Returns:
- DB에 등록한 row의 수
-
deleteRule
public int deleteRule(java.lang.String level, Rule rule)대분류/중분류/소분류 아이디로 해당되는 항목을 삭제함- Specified by:
deleteRulein interfaceRuleService- Parameters:
level- 해당되는 분류(대분류/중분류/소분류)rule- 대분류/중분류/소분류 아이디- Returns:
- DB에서 삭제한 row의 수
-
getRuleBottomLevel
public Rule getRuleBottomLevel(int bottom_level_id)
bottom level id 로 룰 가져오기- Specified by:
getRuleBottomLevelin interfaceRuleService- Parameters:
bottom_level_id- 가져올 데이터의 bottom_level_id- Returns:
- Rule
-
updateRuleContents
public java.util.Map<java.lang.String,java.lang.Object> updateRuleContents(java.lang.String presentVersion, Rule rule)사용자가 입력한 Rule 코드를 DB에 업데이트함- Specified by:
updateRuleContentsin interfaceRuleService- Parameters:
rule- 코드 업데이트를 위한 Rule 객체presentVersion- 현재 룰 버전(버전을 수정했는지 검사할 때 사용)- Returns:
- DB에 업데이트된 row의 수
-
runRuleCompiler
public void runRuleCompiler(java.util.List<Rule> list) throws java.lang.Exception
Rule 클래스 파일을 실행시킴- Specified by:
runRuleCompilerin interfaceRuleService- Parameters:
list- Rule 목록- Throws:
java.lang.Exception- 예외
-
getStringOfException
public java.lang.String getStringOfException(java.lang.Exception e)
예외 발생시 예외를 문자열로 바꿔서 리턴함- Parameters:
e- 예외- Returns:
- 문자열로 변환된 예외
-
deleteJavaClassFile
public void deleteJavaClassFile(java.lang.String fileName)
자바 파일과 클래스 파일을 삭제함(삭제하지 않으면 컴파일 오류시 이전에 컴파일 성공한 클래스 파일을 읽음)- Parameters:
fileName- 자바 및 클래스 파일명
-
getApiDesc
public java.util.Map<java.lang.String,java.lang.Object> getApiDesc(int class_id)
클래스 아이디로 클래스 정보, 필드 정보, 생성자 정보, 메소드 정보를 가져옴- Specified by:
getApiDescin interfaceRuleService- Parameters:
class_id- DB 상의 클래스 아이디- Returns:
- 클래스에 관한 전반적인 정보를 담은 응답 객체
-
uploadCustomLibrary
public void uploadCustomLibrary(java.util.List<org.springframework.web.multipart.MultipartFile> customFile, java.lang.String class_package) throws java.lang.Exception사용자가 import하고자 하는 커스텀 라이브러리 파일을 업로드함- Specified by:
uploadCustomLibraryin interfaceRuleService- Parameters:
customFile- 사용자가 업로드한 커스텀 라이브러리 파일class_package- 커스텀 라이브러리 객체- Throws:
java.lang.Exception- 예외
-
registerCustomLibrary
public java.lang.String registerCustomLibrary(CustomLibrary customLibrary)
사용자가 import하고자 하는 커스텀 라이브러리를 등록함- Specified by:
registerCustomLibraryin interfaceRuleService- Parameters:
customLibrary- 사용자가 업로드한 라이브러리- Returns:
- DB에 추가된 row의 수
-
getAllCustomLibraryByCreator
public java.util.List<CustomLibrary> getAllCustomLibraryByCreator(java.lang.String creator)
사용자 아이디로 사용자가 추가한 커스텀 라이브러리 목록을 가져옴- Specified by:
getAllCustomLibraryByCreatorin interfaceRuleService- Parameters:
creator- 사용자 아이디- Returns:
- 사용자가 추가한 커스텀 라이브러리 목록
-
deleteCustomLibrary
public int deleteCustomLibrary(CustomLibrary customLibrary)
해당되는 커스텀 라이브러리 파일을 삭제하고 DB에서도 삭제함- Specified by:
deleteCustomLibraryin interfaceRuleService- Parameters:
customLibrary- 삭제할 CustomLibrary 객체- Returns:
- DB에서 삭제된 row의 수
-
closeThread
public void closeThread(java.util.concurrent.ExecutorService executor, java.util.List<java.util.concurrent.Future<?>> futures)스레드 작업이 종료될 때까지 기다리고 Task를 종료함- Parameters:
executor- ExecutorServicefutures- Future 리스트
-
-