2010년 3월 6일 토요일

JDT Dialog에서 타입 validation check

JDT로 클래스나 인터페이스를 생성하거나 메소드나 필드를 생성할 때도 이름이 유효한지 체크할 필요가 있다.

org.eclipse.jdt.ui.wizards.NewTypeWizardPage 에서 사용하는 방식을 소개하도록 하겠다.
NewTypeWizardPage에서 타입 validation을 하는데 사용하는 클래스는 org.eclipse.jdt.core.JavaConventions 클래스다.

아래의 소스 코드는 NewTypeWizardPage의 일부이다.


private static IStatus validateJavaTypeName(String text, IJavaProject project) {
if (project == null || !project.exists()) {
return JavaConventions.validateJavaTypeName(text, JavaCore.VERSION_1_3, JavaCore.VERSION_1_3);
}
return JavaConventionsUtil.validateJavaTypeName(text, project);
}


JavaConventionsUtil도 내부적으로 JavaConventions를 사용한다.
JavaConventions는 아래와 같은 메서드들을 제공한다.


  • validateCompilationUnitName(String, String, String)

  • validateClassFileName(String, String, String)

  • validateFieldName(String, String, String)

  • validateIdentifier(String, String, String)

  • validateImportDeclaration(String, String, String)

  • validateJavaTypeName(String, String, String)

  • validateMethodName(String, String, String)

  • validatePackageName(String, String, String)

  • validateClasspathEntry(IJavaProject, IClasspathEntry, boolean)

  • validateTypeVariableName(String, String, String)



상기 메소드들은 모두 org.eclipse.core.runtime.IStatus 으로 리턴한다. IStatus의 getSeverity() 메서드와 getMessage() 메서드를 이용하여 에러 여부와 에러 메시지를 참조할 수 있다.

댓글 없음:

댓글 쓰기