1 19 20 package org.netbeans.modules.j2ee.jpa.verification.rules.entity; 21 22 import java.util.Arrays ; 23 import javax.lang.model.element.TypeElement; 24 import javax.lang.model.type.TypeMirror; 25 import org.netbeans.api.java.source.ElementHandle; 26 import org.netbeans.modules.j2ee.jpa.verification.JPAClassRule; 27 import org.netbeans.modules.j2ee.jpa.verification.JPAClassRule.ClassConstraints; 28 import org.netbeans.modules.j2ee.jpa.verification.common.ProblemContext; 29 import org.netbeans.modules.j2ee.jpa.verification.fixes.ImplementSerializable; 30 import org.netbeans.spi.editor.hints.ErrorDescription; 31 import org.netbeans.spi.editor.hints.Fix; 32 import org.netbeans.spi.editor.hints.Severity; 33 import org.openide.util.NbBundle; 34 35 39 public class SerializableClass extends JPAClassRule { 40 41 42 public SerializableClass() { 43 setClassContraints(Arrays.asList(ClassConstraints.ENTITY, 44 ClassConstraints.EMBEDDABLE, ClassConstraints.IDCLASS)); 45 } 46 47 @Override public ErrorDescription[] apply(TypeElement subject, ProblemContext ctx){ 48 for (TypeMirror iface : subject.getInterfaces()){ 49 if ("java.io.Serializable".equals(iface.toString())){ return null; 51 } 52 } 53 54 Fix fix = new ImplementSerializable(ctx.getFileObject(), ElementHandle.create(subject)); 55 return new ErrorDescription[]{createProblem(subject, ctx, fix)}; 56 } 57 58 @Override public String getDescription(){ 59 return NbBundle.getMessage(IdDefinedInHierarchy.class, "MSG_NonSerializableClass"); 60 } 61 62 @Override public Severity getSeverity(){ 63 return Severity.WARNING; 64 } 65 } 66 | Popular Tags |