code: public ASTConstructor getConstructor(Constructor constructor, boolean isEnum, boolean isInnerClass) {
          ASTAccessModifier modifier = ASTAccessModifier.getModifier(constructor.getModifiers());
  
          Annotation[][] parameterAnnotations = constructor.getParameterAnnotations();
  
          if(constructor.getDeclaringClass().getEnclosingClass() != null && !Modifier.isStatic(constructor.getDeclaringClass().getModifiers())){
              // An inner class constructor contains a hidden non-annotated prameter
              Annotation[][] paddedParameterAnnotations = new Annotation[parameterAnnotations.length + 1][];
  
              paddedParameterAnnotations[0] = new Annotation[0];
              System.arraycopy(parameterAnnotations, 0, paddedParameterAnnotations, 1, parameterAnnotations.length);
  
              parameterAnnotations = paddedParameterAnnotations;
          }
  
          ImmutableList<ASTParameter> constructorParameters = getParameters(constructor.getParameterTypes(), constructor.getGenericParameterTypes(), parameterAnnotations);
          if(isEnum) {
              constructorParameters = constructorParameters.subList(2, constructorParameters.size());
          }
          if(isInnerClass){
              constructorParameters = constructorParameters.subList(1, constructorParameters.size());
          }
          ImmutableSet<ASTType> throwsTypes = getTypes(constructor.getExceptionTypes());
  
          return new ASTClassConstructor(getAnnotations(constructor), constructor, constructorParameters, modifier, throwsTypes);
      }
docs: Build an AST Constructor from the given constructor
  
  @param constructor
  @return AST Constructor