/** * Subclasses may override this method to provide their own validation of any of the data * model's properties. This implementation ensures that a java class can be properly generated * from the values as specified. This method will not return null. This method will not accept * null as a parameter. * * @see org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider#validate(java.lang.String) * * @param propertyName * @return IStatus of the validity of the specifiec property */ public IStatus validate(String propertyName) { IStatus result = super.validate(propertyName); if (result != null && !result.isOK()) return result; if (propertyName.equals(SOURCE_FOLDER)) return validateJavaSourceFolder(getStringProperty(propertyName)); if (propertyName.equals(JAVA_PACKAGE)) return validateJavaPackage(getStringProperty(propertyName)); if (propertyName.equals(CLASS_NAME)) { result = validateJavaClassName(getStringProperty(propertyName)); if (result.isOK()) result = canCreateTypeInClasspath(getStringProperty(CLASS_NAME)); } if (propertyName.equals(SUPERCLASS)) return validateSuperclass(getStringProperty(propertyName)); if (propertyName.equals(MODIFIER_ABSTRACT) || propertyName.equals(MODIFIER_FINAL)) return validateModifier(propertyName, getBooleanProperty(propertyName)); return result; }
/** * Subclasses may extend this method to create their own specialized default WTP operation. This * implementation creates an instance of the NewJavaClassOperation to create a new java class. * This method will not return null. * * @see WTPOperationDataModel#getDefaultOperation() * @see NewJavaClassOperation * * @return WTPOperation */ public IDataModelOperation getDefaultOperation() { return new NewJavaClassOperation(getDataModel()); }
IFolder sourceFolder = getDefaultJavaSourceFolder(); if (sourceFolder != null && sourceFolder.exists()) return sourceFolder.getFullPath().toOSString(); return new Boolean(true); else if (propertyName.equals(PROJECT)) return getTargetProject(); else if (propertyName.equals(JAVA_SOURCE_FOLDER)) return getJavaSourceFolder(); else if (propertyName.equals(JAVA_PACKAGE_FRAGMENT_ROOT)) return getJavaPackageFragmentRoot(); else if (propertyName.equals(QUALIFIED_CLASS_NAME)) return getQualifiedClassName(); return super.getDefaultProperty(propertyName);
/** * This method ensures the source folder is updated if the component is changed. * * @see org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider#propertySet(String, * Object) * * @return boolean if property set successfully */ public boolean propertySet(String propertyName, Object propertyValue) { boolean result = super.propertySet(propertyName, propertyValue); if (result) { if (COMPONENT_NAME.equals(propertyName)){ if( getDefaultJavaSourceFolder() != null ){ setProperty(SOURCE_FOLDER, getDefaultJavaSourceFolder().getFullPath().toOSString()); } } } return result; } }
/** * Subclasses may extend this method to perform their own retrieval mechanism. This * implementation simply returns the JDT package fragment root for the selected source folder. * This method may return null. * * @see IJavaProject#getPackageFragmentRoot(org.eclipse.core.resources.IResource) * * @return IPackageFragmentRoot */ protected IPackageFragmentRoot getJavaPackageFragmentRoot() { IProject project = getTargetProject(); if (project != null) { IJavaProject aJavaProject = JemProjectUtilities.getJavaProject(project); // Return the source folder for the java project of the selected project if (aJavaProject != null) { IFolder sourcefolder = (IFolder) getProperty(JAVA_SOURCE_FOLDER); if (sourcefolder != null) return aJavaProject.getPackageFragmentRoot(sourcefolder); } } return null; }
className = superclassName.substring(index + 1); IStatus status = validateJavaClassName(className); IJavaProject javaProject = JemProjectUtilities.getJavaProject(getTargetProject()); IType supertype = null; try {
protected IStatus validateJavaClassName(String prop) { IStatus status = super.validateJavaClassName(prop); if( status == WTPCommonPlugin.OK_STATUS && getTargetProject() != null ){ try { IJavaProject jProject = JavaCore.create(getTargetProject()); String pName = getStringProperty(JAVA_PACKAGE); IType type = jProject.findType(pName + "." + prop); if(type != null ){ String msg = IEJBAnnotationConstants.ERR_EJB_TYPE_EXISTS; return WTPCommonPlugin.createErrorStatus(msg); } } catch (JavaModelException e) { } } return status; }
return WTPCommonPlugin.createErrorStatus(msg); IProject project = getTargetProject(); IFolder sourcefolder = getJavaSourceFolder(); if (sourcefolder == null || (sourcefolder != null && !sourcefolder.getFullPath().equals(new Path(folderFullPath)))) { String msg = J2EECommonMessages.getResourceString(J2EECommonMessages.ERR_JAVA_CLASS_FOLDER_NOT_SOURCE, new String[]{folderFullPath});
/** * Subclasses may extend this method to add their own data model's properties as valid base * properties. * * @see org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider#getPropertyNames() */ public Set getPropertyNames() { Set propertyNames = super.getPropertyNames(); propertyNames.add(USE_ANNOTATIONS); propertyNames.add(EJB_TYPE); propertyNames.add(EJB_NAME); propertyNames.add(DISPLAY_NAME); propertyNames.add(JNDI_NAME); propertyNames.add(DESCRIPTION); propertyNames.add(CLASS_NAME); propertyNames.add(TRANSACTIONTYPE); propertyNames.add(ANNOTATIONPROVIDER); propertyNames.add(MODELDELEGATE); propertyNames.add(INTERFACES_AS_STRING); return propertyNames; }
/** * This method will ensure that if the abstract modifier is set, that final is not set, and * vice-versa, as this is not supported either way. This method will not accept null. It will * not return null. * * @see NewJavaClassDataModelProvider#validate(String) * * @param prop * @return IStatus of whether abstract value is valid */ private IStatus validateModifier(String propertyName, boolean prop) { // Throw an error if both Abstract and Final are checked if (prop) { // Ensure final is not also checked if (propertyName.equals(MODIFIER_ABSTRACT) && getBooleanProperty(MODIFIER_FINAL)) { String msg = J2EECommonMessages.ERR_BOTH_FINAL_AND_ABSTRACT; return WTPCommonPlugin.createErrorStatus(msg); } // Ensure abstract is not also checked if (propertyName.equals(MODIFIER_FINAL) && getBooleanProperty(MODIFIER_ABSTRACT)) { String msg = J2EECommonMessages.ERR_BOTH_FINAL_AND_ABSTRACT; return WTPCommonPlugin.createErrorStatus(msg); } } // Abstract and final settings are valid return WTPCommonPlugin.OK_STATUS; }
} else if (propertyName.equals(SOURCE_FOLDER)) { try { Object srcFolder = super.getDefaultProperty(propertyName); return srcFolder; } catch (Exception e) {// Ignore return getProperty(MODELDELEGATE); return super.getDefaultProperty(propertyName);