code: private <T> Set<ProjectStage> getProjectStagesForType(AnnotatedType<T> type) {
  
          Set<ProjectStage> stages = new HashSet<ProjectStage>();
  
          if (type.getAnnotation(Development.class) != null) {
              stages.add(ProjectStage.Development);
          }
          if (type.getAnnotation(Production.class) != null) {
              stages.add(ProjectStage.Production);
          }
          if (type.getAnnotation(SystemTest.class) != null) {
              stages.add(ProjectStage.SystemTest);
          }
          if (type.getAnnotation(UnitTest.class) != null) {
              stages.add(ProjectStage.UnitTest);
          }
  
          return stages;
  
      }
docs: Returns a set of {@link ProjectStage}s for which the supplied {@link AnnotatedType} has been enabled using one or more of
  the annotations {@link Development}, {@link Production}, {@link SystemTest} and {@link UnitTest}. The method will return
  an empty set if the type isn't annotated with any of the annotations.
  
  @param type The {@link AnnotatedType} to process
  @return The list of project stages