/* * Copyright (c) 2010 Mysema Ltd. * All rights reserved. * */ package com.mysema.rdfbean.query; import java.util.Collections; import java.util.Map; import javax.annotation.processing.RoundEnvironment; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.VariableElement; import com.mysema.query.annotations.QueryTransient; import com.mysema.query.apt.DefaultConfiguration; import com.mysema.rdfbean.annotations.ClassMapping; import com.mysema.rdfbean.annotations.Id; import com.mysema.rdfbean.annotations.InjectService; import com.mysema.rdfbean.annotations.Mixin; import com.mysema.rdfbean.annotations.Path; import com.mysema.rdfbean.annotations.Predicate; /** * @author tiwe */ public class BeanConfiguration extends DefaultConfiguration { public BeanConfiguration(RoundEnvironment roundEnv, Map<String, String> options) { super(roundEnv, options, Collections.<String> emptySet(), // keywords null, // entities ClassMapping.class, null, // super null, // embeddable null, // embedded QueryTransient.class); } @Override public boolean isValidField(VariableElement field) { return super.isValidField(field) && isValid(field); } @Override public boolean isValidGetter(ExecutableElement getter) { return super.isValidGetter(getter) && isValid(getter); } private boolean isValid(Element d) { return d.getAnnotation(InjectService.class) == null && (d.getAnnotation(Predicate.class) != null || d.getAnnotation(Path.class) != null || d.getAnnotation(Mixin.class) != null || d.getAnnotation(Id.class) != null); } }