Author: dgeraskov
Date: 2009-07-16 05:17:09 -0400 (Thu, 16 Jul 2009)
New Revision: 16592
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/internal/project/facet/SeamInstallWizardPage.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/internal/project/facet/ValidatorFactory.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-4614
Fixed:
1. Method name is validated by JavaConvention.
2. Added default colpilation unit constants. Compilation Level is determined from selected
project.
3. When interface name is validated do not rely on previous validator (do not gulp errors
and see only for warning).
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/internal/project/facet/SeamInstallWizardPage.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/internal/project/facet/SeamInstallWizardPage.java 2009-07-16
07:42:47 UTC (rev 16591)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/internal/project/facet/SeamInstallWizardPage.java 2009-07-16
09:17:09 UTC (rev 16592)
@@ -24,7 +24,6 @@
import org.eclipse.datatools.connectivity.IConnectionProfile;
import org.eclipse.datatools.connectivity.ProfileManager;
import org.eclipse.jdt.core.JavaConventions;
-import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.DialogPage;
import org.eclipse.jface.resource.ImageDescriptor;
@@ -81,6 +80,7 @@
* @author eskimo
*
*/
+@SuppressWarnings("restriction")
public class SeamInstallWizardPage extends AbstractFacetWizardPage implements
IFacetWizardPage, IDataModelListener {
@@ -281,6 +281,7 @@
/**
* Finish has been pressed.
*/
+ @SuppressWarnings("deprecation")
public void transferStateToConfig() {
String seamRuntimeName = jBossSeamHomeEditor.getValueAsString();
SeamRuntime seamRuntime = SeamRuntimeManager.getInstance()
@@ -597,30 +598,19 @@
* @see IValidator#validate(Object, Object)
*/
public Map<String, IStatus> validate(Object value, Object context) {
- IStatus status = JavaConventions.validatePackageName(value
- .toString(), CompilerOptions.VERSION_1_5,
- CompilerOptions.VERSION_1_5);
- if (status.getSeverity() == IStatus.ERROR) {
- return ValidatorFactory
- .createErrormessage(
- fieldName,
- new Status(
- IStatus.ERROR,
- SeamCorePlugin.PLUGIN_ID,
- NLS.bind(SeamUIMessages.SEAM_INSTALL_WIZARD_PAGE_PACKAGE_NAME_NOT_VALID,
- targetName)));
- } else if (status.getSeverity() == IStatus.WARNING) {
- return ValidatorFactory
- .createErrormessage(
- fieldName,
- new Status(
- IStatus.WARNING,
- SeamCorePlugin.PLUGIN_ID,
- NLS.bind(SeamUIMessages.SEAM_INSTALL_WIZARD_PAGE_PACKAGE_NAME_NOT_VALID,
- targetName)));
+ IStatus status = JavaConventions.validatePackageName(value.toString(),
+ ValidatorFactory.DEFAULT_SOURCE_LEVEL,
+ ValidatorFactory.DEFAULT_COMPLIANCE_LEVEL);
+
+ if (((IStatus.ERROR | IStatus.WARNING) & status.getSeverity() ) != 0 ){
+ return doPackStatus(status,
+ fieldName,
+ NLS.bind(SeamUIMessages.SEAM_INSTALL_WIZARD_PAGE_PACKAGE_NAME_NOT_VALID,
+ targetName));
}
return ValidatorFactory.NO_ERRORS;
}
+
}
class ProjectNameValidator implements IValidator {
@@ -638,8 +628,7 @@
IStatus status = SeamFacetProjectCreationDataModelProvider
.validateUpperCaseInProjectName(projectName);
if (!status.isOK()) {
- return ValidatorFactory
- .createErrormessage(propertyName, status);
+ return ValidatorFactory.createErrormessage(propertyName, status);
}
return ValidatorFactory.NO_ERRORS;
}
@@ -665,70 +654,35 @@
final String testProjectName = projectName + "-test"; //$NON-NLS-1$
IStatus status = ProjectCreationDataModelProviderNew
.validateName(testProjectName);
- if (status.getSeverity() == IStatus.ERROR) {
- return ValidatorFactory
- .createErrormessage(
- propertyName,
- new Status(
- IStatus.ERROR,
- SeamCorePlugin.PLUGIN_ID,
- NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_TEST_PROJECT_ALREADY_EXISTS,
- testProjectName)));
- } else if (status.getSeverity() == IStatus.WARNING) {
- return ValidatorFactory
- .createErrormessage(
- propertyName,
- new Status(
- IStatus.WARNING,
- SeamCorePlugin.PLUGIN_ID,
- NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_TEST_PROJECT_ALREADY_EXISTS,
- testProjectName)));
+
+ if (((IStatus.ERROR | IStatus.WARNING) & status.getSeverity() ) != 0 ){
+ return doPackStatus(status,
+ propertyName,
+ NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_TEST_PROJECT_ALREADY_EXISTS,
+ testProjectName));
}
+
if (ISeamFacetDataModelProperties.DEPLOY_AS_EAR.equals(deployAs)) {
final String earProjectName = projectName + "-ear"; //$NON-NLS-1$
status = ProjectCreationDataModelProviderNew
.validateName(earProjectName);
- if (status.getSeverity() == IStatus.ERROR) {
- return ValidatorFactory
- .createErrormessage(
- propertyName,
- new Status(
- IStatus.ERROR,
- SeamCorePlugin.PLUGIN_ID,
- NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_EAR_PROJECT_ALREADY_EXISTS,
- earProjectName)));
- } else if (status.getSeverity() == IStatus.WARNING) {
- return ValidatorFactory
- .createErrormessage(
- propertyName,
- new Status(
- IStatus.WARNING,
- SeamCorePlugin.PLUGIN_ID,
- NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_EAR_PROJECT_ALREADY_EXISTS,
- earProjectName)));
+
+ if (((IStatus.ERROR | IStatus.WARNING) & status.getSeverity() ) != 0 ){
+ return doPackStatus(status,
+ propertyName,
+ NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_EAR_PROJECT_ALREADY_EXISTS,
+ earProjectName));
}
final String ejbProjectName = projectName + "-ejb"; //$NON-NLS-1$
status = ProjectCreationDataModelProviderNew
.validateName(ejbProjectName);
- if (status.getSeverity() == IStatus.ERROR) {
- return ValidatorFactory
- .createErrormessage(
- propertyName,
- new Status(
- IStatus.ERROR,
- SeamCorePlugin.PLUGIN_ID,
- NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_EJB_PROJECT_ALREADY_EXISTS,
- ejbProjectName)));
- } else if (status.getSeverity() == IStatus.WARNING) {
- return ValidatorFactory
- .createErrormessage(
- propertyName,
- new Status(
- IStatus.WARNING,
- SeamCorePlugin.PLUGIN_ID,
- NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_EJB_PROJECT_ALREADY_EXISTS,
- ejbProjectName)));
+
+ if (((IStatus.ERROR | IStatus.WARNING) & status.getSeverity() ) != 0 ){
+ return doPackStatus(status,
+ propertyName,
+ NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_EJB_PROJECT_ALREADY_EXISTS,
+ ejbProjectName));
}
}
return ValidatorFactory.NO_ERRORS;
@@ -786,20 +740,16 @@
IRuntime rt = RuntimeManager.getRuntime(runtimeName
.toString());
if (!rt.supports(EJB_30) || !rt.supports(EAR_50)) {
- return ValidatorFactory
- .createErrormessage(
- propertyName,
- new Status(
- IStatus.ERROR,
- SeamCorePlugin.PLUGIN_ID,
- NLS
- .bind(
- SeamUIMessages.SEAM_INSTALL_WIZARD_PAGE_CANNOT_USE_SELECTED_DEPLOYMENT6,
- new String[] {
- deploymentType
- .toUpperCase(),
- runtimeName
- .toString() })));
+ return ValidatorFactory.createErrormessage(
+ propertyName,
+ new Status(
+ IStatus.ERROR,
+ SeamCorePlugin.PLUGIN_ID,
+ NLS.bind(
+ SeamUIMessages.SEAM_INSTALL_WIZARD_PAGE_CANNOT_USE_SELECTED_DEPLOYMENT6,
+ new String[] {
+ deploymentType.toUpperCase(),
+ runtimeName.toString() })));
}
}
}
@@ -863,4 +813,10 @@
public String getTestsPkgName() {
return (String) testsPkgNameditor.getValue();
}
+
+ private Map<String, IStatus> doPackStatus(IStatus status, String propertyName,
String message){
+ return ValidatorFactory.createErrormessage(
+ propertyName,
+ new Status(status.getSeverity(), SeamCorePlugin.PLUGIN_ID, message));
+ }
}
\ No newline at end of file
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/internal/project/facet/ValidatorFactory.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/internal/project/facet/ValidatorFactory.java 2009-07-16
07:42:47 UTC (rev 16591)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/internal/project/facet/ValidatorFactory.java 2009-07-16
09:17:09 UTC (rev 16592)
@@ -48,7 +48,12 @@
* @author eskimo
*
*/
+@SuppressWarnings("restriction")
public class ValidatorFactory {
+
+ public static final String DEFAULT_SOURCE_LEVEL = CompilerOptions.VERSION_1_5;
+
+ public static final String DEFAULT_COMPLIANCE_LEVEL = DEFAULT_SOURCE_LEVEL;
/**
*
@@ -218,9 +223,9 @@
public static final IValidator PACKAGE_NAME_VALIDATOR = new IValidator() {
public Map<String, IStatus> validate(Object value, Object context) {
- IStatus status = JavaConventions.validatePackageName(value
- .toString(), CompilerOptions.VERSION_1_5,
- CompilerOptions.VERSION_1_5);
+ IStatus status = JavaConventions.validatePackageName(value.toString(),
+ DEFAULT_SOURCE_LEVEL,
+ DEFAULT_COMPLIANCE_LEVEL);
if (status.getSeverity() == IStatus.ERROR) {
return createErrormessage(new Status(IStatus.ERROR, SeamCorePlugin.PLUGIN_ID,
Messages.format(NewWizardMessages.NewTypeWizardPage_error_InvalidPackageName,
status.getMessage())));
}
@@ -255,13 +260,13 @@
return createErrormessage(new Status(IStatus.ERROR, SeamCorePlugin.PLUGIN_ID,
NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_COMPONENT_ALREADY_EXISTS, name)));
}
- String[] segs = name.split("\\.");
+ String[] segs = name.split("\\.");//$NON-NLS-1$
for(String segm : segs){
if(!segm.trim().equals(segm))
return createErrormessage(new Status(IStatus.ERROR, SeamCorePlugin.PLUGIN_ID,
SeamUIMessages.VALIDATOR_FACTORY_NAME_IS_NOT_VALID));
IStatus status = JavaConventions.validateClassFileName(segm
- + ".class", "5.0", "5.0"); //$NON-NLS-1$
//$NON-NLS-2$ //$NON-NLS-3$
+ + ".class", DEFAULT_SOURCE_LEVEL, DEFAULT_COMPLIANCE_LEVEL);
//$NON-NLS-1$
if (!status.isOK())
return createErrormessage(new Status(IStatus.ERROR, SeamCorePlugin.PLUGIN_ID,
SeamUIMessages.VALIDATOR_FACTORY_NAME_IS_NOT_VALID));
}
@@ -284,16 +289,11 @@
Object[] contextArray = ((Object[]) context);
IProject project = (IProject) contextArray[1];
-
IJavaProject jProject = JavaCore.create(project);
- String sourceLevel = jProject.getOption(JavaCore.COMPILER_SOURCE,
- true);
- String compliance = jProject.getOption(
- JavaCore.COMPILER_COMPLIANCE, true);
- IStatus status = JavaConventions.validateJavaTypeName(value
- .toString(), sourceLevel, compliance);
- if (status.getSeverity() == IStatus.WARNING) {
+ IStatus status = JavaConventions.validateJavaTypeName(value.toString(),
+ getCompilerSourceLevel(jProject), getCompilerComplianceLevel(jProject));
+ if (((IStatus.ERROR | IStatus.WARNING) & status.getSeverity()) != 0) {
return createErrormessage(new Status(IStatus.ERROR, SeamCorePlugin.PLUGIN_ID,
SeamUIMessages.VALIDATOR_FACTORY_LOCAL_INTERFACE_NAME_IS_NOT_VALID
+ status.getMessage()));
}
@@ -312,14 +312,12 @@
Object[] contextArray = ((Object[]) context);
String targetName = contextArray[0].toString();
IProject project = (IProject) contextArray[1];
-
- CompilationUnit compilationUnit = createCompilationUnit(
- "class ClassName {public void " //$NON-NLS-1$
- + value.toString() + "() {}}", project); //$NON-NLS-1$
-
- IProblem[] problems = compilationUnit.getProblems();
-
- if (problems.length > 0) {
+ IJavaProject jProject = JavaCore.create(project);
+
+ IStatus status = JavaConventions.validateMethodName(value.toString(),
+ getCompilerSourceLevel(jProject), getCompilerComplianceLevel(jProject));
+
+ if (status.getSeverity() == IStatus.ERROR){
return createErrormessage(new Status(IStatus.ERROR, SeamCorePlugin.PLUGIN_ID,
NLS.bind(SeamUIMessages.VALIDATOR_FACTORY_NAME_IS_NOT_VALID, targetName)));
}
@@ -493,7 +491,6 @@
public java.util.Map<String, IStatus> validate(Object value,
Object context) {
Map<String, IStatus> errors = NO_ERRORS;
- String rtName = value.toString();
if (value == null || "".equals(value)) { //$NON-NLS-1$
errors = createErrormessage(new Status(IStatus.ERROR, SeamCorePlugin.PLUGIN_ID,
SeamUIMessages.VALIDATOR_FACTORY_SEAM_RT_NOT_CONFIGURED));
@@ -535,14 +532,31 @@
return errors;
}
};
+
+ /**
+ *
+ * @param jProject
+ * @return java project's CompilerSourceLevel or default one.
+ */
+ public static String getCompilerSourceLevel(IJavaProject jProject){
+ if (jProject == null){
+ return DEFAULT_SOURCE_LEVEL;
+ }
+ String sourceLevel = jProject.getOption(JavaCore.COMPILER_SOURCE, true);
+ return sourceLevel != null ? sourceLevel : DEFAULT_SOURCE_LEVEL;
+ }
+
+ /**
+ *
+ * @param jProject
+ * @return java project's CompilerComplianceLevel or default one.
+ */
+ public static String getCompilerComplianceLevel(IJavaProject jProject){
+ if (jProject == null){
+ return DEFAULT_COMPLIANCE_LEVEL;
+ }
+ String compliance = jProject.getOption(JavaCore.COMPILER_COMPLIANCE, true);
+ return compliance != null ? compliance : DEFAULT_SOURCE_LEVEL;
+ }
- public static CompilationUnit createCompilationUnit(String classDecl,
- IProject project) {
- ASTParser parser = ASTParser.newParser(AST.JLS3);
- parser.setSource(classDecl.toCharArray());
- parser.setProject(JavaCore.create(project));
- CompilationUnit compilationUnit = (CompilationUnit) parser
- .createAST(null);
- return compilationUnit;
- }
}
\ No newline at end of file