code: public <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {
  
          // lazily obtain the project stage
          if (stage == null) {
              stage = detectProjectStage();
          }
  
          // the project stages explicitly specified on the type
          Set<ProjectStage> validProjectStages = getProjectStagesForType(pat.getAnnotatedType());
  
          // veto the type if the current project stage doesn't match
          if (validProjectStages.size() > 0 && !validProjectStages.contains(stage)) {
  
              if (log.isDebugEnabled()) {
                  log.debug("Preventing class " + pat.getAnnotatedType().getJavaClass().getName()
                          + " from being installed due to the current project stage");
              }
  
              // veto this type
              pat.veto();
  
          }
  
      }
docs: Observes {@link ProcessAnnotatedType} events and sends a veto if the type should be
  ignored due to the current project stage.