private static void generateStringListInits( PrintWriter writer, Collection<ParameterDeclaration> params) { for (ParameterDeclaration param : params) { StringList stringList_annotation = param.getAnnotation(StringList.class); if (stringList_annotation != null) { String lengths = stringList_annotation.lengths(); // Init vars writer.println("\t_str_i = 0;"); writer.println( "\t_str_address = (GLchar *)" + param.getSimpleName() + BUFFER_ADDRESS_POSTFIX + ";"); // Fill string array with the string pointers writer.println("\twhile ( _str_i < " + stringList_annotation.value() + " ) {"); if (lengths.length() == 0) { writer.println( "\t\t" + param.getSimpleName() + STRING_LIST_POSTFIX + "[_str_i++] = _str_address;"); writer.println("\t\t_str_address += strlen(_str_address) + 1;"); } else { writer.println( "\t\t" + param.getSimpleName() + STRING_LIST_POSTFIX + "[_str_i] = _str_address;"); writer.println("\t\t_str_address += " + lengths + BUFFER_ADDRESS_POSTFIX + "[_str_i++];"); } writer.println("\t}"); } } }