This rule checks that non-abstract classes extending AbstractDao end with DaoImpl. In addition, classes that inherit from a class with the suffix Dao must also have the suffix Dao.
public abstract class ClassDaoImpl extends AbstractDao {}
public class TestClass extends TestDao {}
public class ClassDaoImpl extends AbstractDao {}
public class ClassDao extends TestDao {}