⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 doctranslet.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
               FileOutputStream out = new FileOutputStream(targetFile.getAbsolutePath());               IOToolkit.copyStream(in, out);               in.close();               out.close();            }            else {                           reporter.printNotice("Generating " + fileInfo.getComment() + "...");               String pathToRoot = "";               for (File file = getParentFile(targetFile); !equalsFile(file, targetDirectory); file = getParentFile(file)) {                  pathToRoot += "../";               }                           StreamResult out = new StreamResult(targetFile.getAbsolutePath());               StreamSource in = new StreamSource(new File(xmlSourceDirectory, "index.xml").getAbsolutePath());               URL resource = new URL(mainResourceURL, fileInfo.getSheet());               StreamSource xsltSource = new StreamSource(resource.toExternalForm());               if (null != fileInfo.getInfo()) {                  parameters.put("gjdoc.outputfile.info", fileInfo.getInfo());               }               parameters.put("gjdoc.pathtoroot", pathToRoot);               Transformer transformer;               transformer = (Transformer)transformerMap.get(xsltSource.getSystemId());               if (null == transformer) {                  transformer = transformerFactory.newTransformer(xsltSource);                  if (cacheXSLTSheets) {                     transformerMap.put(xsltSource.getSystemId(), transformer);                  }               }               transformer.clearParameters();               for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {                  String key = (String)pit.next();                  String value = (String)parameters.get(key);                  transformer.setParameter(key, value);               }               transformer.setErrorListener(this);               DocErrorReporterOutputStream errorReporterOut                  = new DocErrorReporterOutputStream(reporter);               System.setErr(new PrintStream(errorReporterOut));               transformer.transform(in, out);               errorReporterOut.flush();            }         }      }      catch (MalformedURLException e) {	 throw new DocTransletException(e);      }      catch (TransformerFactoryConfigurationError e) {	 throw new DocTransletException(e);      }      catch (TransformerException e) {	 throw new DocTransletException(e.getMessageAndLocation(), e);      }      catch (IOException e) {	 throw new DocTransletException(e);      }      finally {         System.setErr(err);      }   }   private List getOutputFileList(URL resource, File xmlSourceDirectory, Map parameters)       throws DocTransletException {      try {	 List result;	 OutputStream out = new ByteArrayOutputStream();         DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();         DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();         Document document = documentBuilder.newDocument();         DOMResult domResult = new DOMResult(document);                  {            StreamSource source = new StreamSource(resource.toExternalForm());                        TransformerFactory transformerFactory = TransformerFactory.newInstance();            Transformer transformer = (Transformer)transformerFactory.newTransformer(source);                        transformer.clearParameters();            for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {               String key = (String)pit.next();               String value = (String)parameters.get(key);               transformer.setParameter(key, value);            }                        transformer.transform(new StreamSource(new File(xmlSourceDirectory,                                                             "index.xml").getAbsolutePath()),                                   domResult);         }         {	             NodeList nodeList = document.getElementsByTagName("outputfile");            result = new ArrayList(nodeList.getLength());            for (int i=0; i<nodeList.getLength(); ++i) {               Element elem = (Element)nodeList.item(i);               String name    = getTextContent(elem.getElementsByTagName("name").item(0));               String source                    = (null != elem.getElementsByTagName("source").item(0))                  ? getTextContent(elem.getElementsByTagName("source").item(0))                  : null;               String sheet                  = (null != elem.getElementsByTagName("sheet").item(0))                  ? getTextContent(elem.getElementsByTagName("sheet").item(0))                  : null;               String comment = getTextContent(elem.getElementsByTagName("comment").item(0));               String info    = null;               if (elem.getElementsByTagName("info").getLength() > 0) {                  if (null != elem.getElementsByTagName("info").item(0).getFirstChild()) {                     info = getTextContent(elem.getElementsByTagName("info").item(0));                  }                  else {                     info = "";                  }               }               result.add(new OutputFileInfo(name, source, sheet, comment, info));            }         }         return result;      }      catch (TransformerFactoryConfigurationError e) {	 throw new DocTransletException(e);      }      catch (TransformerException e) {	 throw new DocTransletException(e.getMessageAndLocation(), e);      }      catch (ParserConfigurationException e) {	 throw new DocTransletException(e);      }   }   private String getTextContent(Node elem)   {      StringBuffer result = new StringBuffer();      NodeList children = elem.getChildNodes();      for (int i=0; i<children.getLength(); ++i) {         Node item = children.item(i);         if (null != item) {            String value = item.getNodeValue();            if (null != value) {               result.append(value);            }         }      }      return result.toString();   }   public void setOptions(DocTransletOptions options) {      this.options = options;   }   public static DocTranslet fromClasspath(String resourceName)       throws DocTransletConfigurationException {      return new DocTranslet(resourceName,                              DocTranslet.class.getClassLoader());   }   public static DocTranslet fromJarFile(File jarFile)       throws DocTransletConfigurationException {      try {         JarFile inputJarFile = new JarFile(jarFile, false, JarFile.OPEN_READ);               Manifest manifest = inputJarFile.getManifest();                  if (null == manifest) {                     throw new DocTransletConfigurationException("Jar file '" + jarFile + "' doesn't contain a manifest.");         }                  Attributes mainAttributes = manifest.getMainAttributes();               String docTransletMainEntry = mainAttributes.getValue("doctranslet-main-entry");         if (null == docTransletMainEntry) {                        throw new DocTransletConfigurationException("Manifest in Jar file '" + jarFile + "' doesn't contain a doctranslet-main-entry specification.");         }                  return new DocTranslet(docTransletMainEntry,                                 new JarClassLoader(inputJarFile));      }      catch (IOException e) {         throw new DocTransletConfigurationException(e);      }   }   private static String xsltBoolean(boolean b) {      return b ? "1" : "";   }  public void error (TransformerException exception)    throws TransformerException {     throw exception;  }  public void fatalError (TransformerException exception)    throws TransformerException {     throw exception;  }  public void warning (TransformerException exception)    throws TransformerException {     System.err.println("WWW: " + exception.getMessage());  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -