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 ) ; }
Build an AST Constructor from the given constructor