public static void save(File fSource, File fDest, AnalysisConsumer acAnalysisResults) throws IOException { Reader r = new FileReader(fSource); IndentAwareWriter iaw = new IndentAwareWriter(new OutputStreamWriter(new FileOutputStream(fDest))); try { new Injector(r, iaw, new FileSaveConsumer(iaw, acAnalysisResults)).parseFile(); iaw.flush(); iaw.close(); } catch (InjectorParseException ipe) { ipe.printStackTrace(); } }
public void onAttributeHeader(JavaAttribute ja) throws java.io.IOException { if (!m_fWroteDocComment) { // Feature without comment if ((m_iFeatures.hasNext()) && (getCurrentFeature().getCommentID() == m_cComments + 1)) { // ' + 1 ' because the number in m_cComments refers to the last doccomment // that was actually written // Might need element-type/key-type spec (i.e., if it is a collection or map) if (ja.getType() != null) { try { Class clClass = ja.getFile().findType(ja.getType()); if (clClass != null) { // Not a simple type --> check whether collection or map if (java.util.Collection.class.isAssignableFrom(clClass) || java.util.Map.class.isAssignableFrom(clClass)) { // Yup! So we have to generate a comment for it! if (m_iawOutput != null) { int nIndent = m_iawOutput.getCurrentIndent(); getCurrentFeature().indentComment(nIndent); String sDocComment = getCurrentFeature().getDocComment(); if (sDocComment != null) { m_iawOutput.write(sDocComment + "\n"); for (; nIndent > 0; nIndent--) { m_iawOutput.write(" "); } } } m_adCurrentFeature = null; // Mark feature as handled... m_cComments++; } } } catch (InjectorParseException ipe) { System.err.println("Exception while saving attribute:"); ipe.printStackTrace(); throw new IOException(ipe.getMessage()); } } } } }