< prev index next >

jaxws/src/jdk.xml.bind/share/classes/com/sun/tools/internal/xjc/ProgressCodeWriter.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -50,25 +50,44 @@
             throw new IllegalArgumentException();
     }
 
     private final XJCListener progress;
 
+    @Override
     public Writer openSource(JPackage pkg, String fileName) throws IOException {
         report(pkg,fileName);
         return super.openSource(pkg, fileName);
     }
 
+    @Override
     public OutputStream openBinary(JPackage pkg, String fileName) throws IOException {
         report(pkg,fileName);
         return super.openBinary(pkg,fileName);
     }
 
-    private void report(JPackage pkg, String fileName) {
-        String name = pkg.name().replace('.', File.separatorChar);
-        if(name.length()!=0)    name +=     File.separatorChar;
-        name += fileName;
+    /**
+     * Report progress to {@link XJCListener}.
+     * @param pkg The package of file being written. Value of {@code null} means that file has no package.
+     * @param fileName The file name being written. Value can't be {@code null}.
+     */
+    private void report(final JPackage pkg, final String fileName) {
+        if (fileName == null) {
+            throw new IllegalArgumentException("File name is null");
+        }
+
+        final String pkgName;
+        final String fileNameOut;
+        if (pkg != null && (pkgName = pkg.name().replace('.', File.separatorChar)).length() > 0 ) {
+            final StringBuilder sb = new StringBuilder(fileName.length() + pkgName.length() + 1);
+            sb.append(pkgName);
+            sb.append(File.separatorChar);
+            sb.append(fileName);
+            fileNameOut = sb.toString();
+        } else {
+            fileNameOut = fileName;
+        }
 
         if(progress.isCanceled())
             throw new AbortException();
-        progress.generatedFile(name,current++,totalFileCount);
+        progress.generatedFile(fileNameOut, current++, totalFileCount);
     }
 }
< prev index next >