public void start(final Constructor constructor) {
    Checker.notNull("parameter:constructor", constructor);

    final Iterator<ConstructorParameter> parameters = constructor.getParameters().iterator();
    while (parameters.hasNext()) {
      final ConstructorParameter parameter = parameters.next();
      if (this.visit(parameter)) {
        break;
      }
    }
  }
 public void setLoggingLevelLogger(final Constructor loggingLevelLogger) {
   Checker.notNull("parameter:loggingLevelLogger", loggingLevelLogger);
   this.loggingLevelLogger = loggingLevelLogger;
 }
 protected Constructor getLoggingLevelLogger() {
   Checker.notNull("field:loggingLevelLogger", loggingLevelLogger);
   return this.loggingLevelLogger;
 }
 public void setName(final String name) {
   Checker.notEmpty("parameter:name ", name);
   this.name = name;
 }
 protected String getName() {
   Checker.notEmpty("field:name", name);
   return this.name;
 }
 protected E getCache() {
   Checker.trueValue("cache", cache != CACHE_NOT_SET);
   return cache;
 }
 public void setMethodReturnType(final Type methodReturnType) {
   Checker.notNull("parameter:methodReturnType", methodReturnType);
   this.methodReturnType = methodReturnType;
 }
 protected Type getMethodReturnType() {
   Checker.notNull("field:methodReturnType", methodReturnType);
   return this.methodReturnType;
 }