private void addExtensionInterfacesToExistingClass( SrcClass srcClass, StringBuilder sb ) { String start = (srcClass.isInterface() ? "interface " : "class ") + srcClass.getSimpleName(); int iStart = sb.indexOf( start ); int iBrace = sb.indexOf( "{", iStart ); StringBuilder sbSrcClass = new StringBuilder(); srcClass.render( sbSrcClass, 0 ); int iSrcClassStart = sbSrcClass.indexOf( start ); int iSrcClassBrace = sbSrcClass.indexOf( "{", iSrcClassStart ); String fromSrcClass = sbSrcClass.substring( iSrcClassStart, iSrcClassBrace ); sb.replace( iStart, iBrace, fromSrcClass ); }
private void addExtensionInterfacesToExistingClass( SrcClass srcClass, StringBuilder sb ) { String start = (srcClass.isInterface() ? "interface " : "class ") + srcClass.getSimpleName(); int iStart = sb.indexOf( start ); int iBrace = sb.indexOf( "{", iStart ); StringBuilder sbSrcClass = new StringBuilder(); srcClass.render( sbSrcClass, 0 ); int iSrcClassStart = sbSrcClass.indexOf( start ); int iSrcClassBrace = sbSrcClass.indexOf( "{", iSrcClassStart ); String fromSrcClass = sbSrcClass.substring( iSrcClassStart, iSrcClassBrace ); sb.replace( iStart, iBrace, fromSrcClass ); }
private void addExtensionAnnotationsToExistingClass( SrcClass srcClass, StringBuilder sb ) { if( srcClass.getAnnotations().isEmpty() ) { return; } StringBuilder sbAnnos = new StringBuilder(); for( SrcAnnotationExpression anno : srcClass.getAnnotations() ) { anno.render( sbAnnos, 0 ).append( '\n' ); } String start = (srcClass.isInterface() ? "interface " : "class ") + srcClass.getSimpleName(); int iStart = sb.indexOf( start ); while( iStart != 0 ) { if( sb.charAt( iStart ) == '\n' ) { break; } iStart--; } if( sb.charAt( iStart ) == '\n' ) { iStart++; } sb.insert( iStart, sbAnnos ); }
private void addExtensionAnnotationsToExistingClass( SrcClass srcClass, StringBuilder sb ) { if( srcClass.getAnnotations().isEmpty() ) { return; } StringBuilder sbAnnos = new StringBuilder(); for( SrcAnnotationExpression anno : srcClass.getAnnotations() ) { anno.render( sbAnnos, 0 ).append( '\n' ); } String start = (srcClass.isInterface() ? "interface " : "class ") + srcClass.getSimpleName(); int iStart = sb.indexOf( start ); while( iStart != 0 ) { if( sb.charAt( iStart ) == '\n' ) { break; } iStart--; } if( sb.charAt( iStart ) == '\n' ) { iStart++; } sb.insert( iStart, sbAnnos ); }
private boolean isNonDefaultNonStaticInterfaceMethod() { return getOwner() instanceof SrcClass && ((SrcClass)getOwner()).isInterface() && (getModifiers() & Flags.DEFAULT) == 0 && (getModifiers() & Flags.STATIC) == 0; } }
if( !extendedType.isInterface() )
if( !extendedType.isInterface() )
if( extendedType.isInterface() && isInstanceExtensionMethod )
if( extendedType.isInterface() && isInstanceExtensionMethod )