1 19 20 package org.netbeans.modules.j2ee.jpa.verification.rules.entity; 21 22 import java.util.Collections ; 23 import javax.lang.model.element.TypeElement; 24 import org.netbeans.modules.db.api.sql.SQLKeywords; 25 import org.netbeans.modules.j2ee.jpa.model.JPAHelper; 26 import org.netbeans.modules.j2ee.jpa.verification.JPAClassRule; 27 import org.netbeans.modules.j2ee.jpa.verification.common.ProblemContext; 28 import org.netbeans.modules.j2ee.persistence.dd.JavaPersistenceQLKeywords; 29 import org.netbeans.spi.editor.hints.ErrorDescription; 30 import org.netbeans.spi.editor.hints.Severity; 31 import org.openide.util.NbBundle; 32 33 38 public class ValidPrimaryTableName extends JPAClassRule { 39 private String errorMsg = null; 40 private Severity severity = null; 41 42 43 public ValidPrimaryTableName() { 44 setClassContraints(Collections.singleton(ClassConstraints.ENTITY)); 45 } 46 47 @Override public ErrorDescription[] apply(TypeElement subject, ProblemContext ctx){ 48 String entityName = JPAHelper.getPrimaryTableName(subject); 49 50 if (entityName.length() == 0){ severity = Severity.ERROR; 52 errorMsg = NbBundle.getMessage(IdDefinedInHierarchy.class, "MSG_InvalidPersistenceQLIdentifier"); 53 return new ErrorDescription[]{createProblem(subject, ctx)}; 54 } 55 56 if (JavaPersistenceQLKeywords.isKeyword(entityName)){ 57 severity = Severity.ERROR; 58 errorMsg = NbBundle.getMessage(IdDefinedInHierarchy.class, "MSG_ClassNamedWithJavaPersistenceQLKeyword"); 59 return new ErrorDescription[]{createProblem(subject, ctx)}; 60 } 61 62 if (SQLKeywords.isSQL99ReservedKeyword(entityName)){ 63 severity = Severity.WARNING; 64 errorMsg = NbBundle.getMessage(IdDefinedInHierarchy.class, "MSG_ClassNamedWithReservedSQLKeyword"); 65 return new ErrorDescription[]{createProblem(subject, ctx)}; 66 } 67 68 return null; 69 } 70 71 @Override public String getDescription(){ 72 return errorMsg; 73 } 74 75 @Override public Severity getSeverity(){ 76 return severity; 77 } 78 } 79 | Popular Tags |