📄 configurationwriter.java
字号:
return filtered; } private void writeOption(String optionName, boolean flag) { if (flag) { writer.println(optionName); } } private void writeOption(String optionName, String arguments) { if (arguments != null) { writer.println(optionName + " " + quotedString(arguments)); } } private void writeOptions(String[] optionNames, List classSpecifications) { if (classSpecifications != null) { for (int index = 0; index < classSpecifications.size(); index++) { writeOption(optionNames, (ClassSpecification)classSpecifications.get(index)); } } } private void writeOption(String[] optionNames, ClassSpecification classSpecification) { writer.println(); // Write out the comments for this option. writeComments(classSpecification.comments); // Write out the proper class specification option name. writer.print(optionNames[classSpecification.markConditionally ? 2 : classSpecification.markClassFiles ? 0 : 1]); writer.print(" "); // Write out the class access flags. writer.print(ClassUtil.externalClassAccessFlags(classSpecification.requiredUnsetAccessFlags, ConfigurationConstants.NEGATOR_KEYWORD)); writer.print(ClassUtil.externalClassAccessFlags(classSpecification.requiredSetAccessFlags)); // Write out the class keyword, if we didn't write the interface // keyword earlier. if (((classSpecification.requiredSetAccessFlags | classSpecification.requiredUnsetAccessFlags) & ClassConstants.INTERNAL_ACC_INTERFACE) == 0) { writer.print("class"); } writer.print(" "); // Write out the class name. writer.print(classSpecification.className != null ? ClassUtil.externalClassName(classSpecification.className) : "*"); // Write out the extends template, if any. if (classSpecification.extendsClassName != null) { writer.print(" extends " + ClassUtil.externalClassName(classSpecification.extendsClassName)); } // Write out the keep field and keep method options, if any. if (classSpecification.fieldSpecifications != null || classSpecification.methodSpecifications != null) { writer.println(" {"); writeFieldSpecification( classSpecification.fieldSpecifications); writeMethodSpecification(classSpecification.methodSpecifications, classSpecification.className); writer.println("}"); } else { writer.println(); } } private void writeComments(String comments) { if (comments != null) { int index = 0; while (index < comments.length()) { int breakIndex = comments.indexOf('\n', index); if (breakIndex < 0) { breakIndex = comments.length(); } writer.print('#'); writer.println(comments.substring(index, breakIndex)); index = breakIndex + 1; } } } private void writeFieldSpecification(List classMemberSpecifications) { if (classMemberSpecifications != null) { for (int index = 0; index < classMemberSpecifications.size(); index++) { ClassMemberSpecification classMemberSpecification = (ClassMemberSpecification)classMemberSpecifications.get(index); writer.print(" "); // Write out the field access flags. writer.print(ClassUtil.externalFieldAccessFlags(classMemberSpecification.requiredUnsetAccessFlags, ConfigurationConstants.NEGATOR_KEYWORD)); writer.print(ClassUtil.externalFieldAccessFlags(classMemberSpecification.requiredSetAccessFlags)); // Write out the field name and descriptor. writer.print(classMemberSpecification.name != null || classMemberSpecification.descriptor != null ? ClassUtil.externalFullFieldDescription(0, classMemberSpecification.name, classMemberSpecification.descriptor) : ConfigurationConstants.ANY_FIELD_KEYWORD); writer.println(";"); } } } private void writeMethodSpecification(List classMemberSpecifications, String className) { if (classMemberSpecifications != null) { for (int index = 0; index < classMemberSpecifications.size(); index++) { ClassMemberSpecification classMemberSpecification = (ClassMemberSpecification)classMemberSpecifications.get(index); writer.print(" "); // Write out the method access flags. writer.print(ClassUtil.externalMethodAccessFlags(classMemberSpecification.requiredUnsetAccessFlags, ConfigurationConstants.NEGATOR_KEYWORD)); writer.print(ClassUtil.externalMethodAccessFlags(classMemberSpecification.requiredSetAccessFlags)); // Write out the method name and descriptor. writer.print(classMemberSpecification.name != null || classMemberSpecification.descriptor != null ? ClassUtil.externalFullMethodDescription(className, 0, classMemberSpecification.name, classMemberSpecification.descriptor) : ConfigurationConstants.ANY_METHOD_KEYWORD); writer.println(";"); } } } private String quotedString(String string) { return string.length() == 0 || string.indexOf(' ') >= 0 ? ("'" + string + "'") : ( string ); } /** * A main method for testing configuration writing. */ public static void main(String[] args) { try { ConfigurationWriter writer = new ConfigurationWriter(args[0]); writer.write(new Configuration()); } catch (Exception ex) { ex.printStackTrace(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -