diff options
Diffstat (limited to 'src/share/jaxws_classes/com/sun/tools/internal/xjc/writer/SignatureWriter.java')
-rw-r--r-- | src/share/jaxws_classes/com/sun/tools/internal/xjc/writer/SignatureWriter.java | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/src/share/jaxws_classes/com/sun/tools/internal/xjc/writer/SignatureWriter.java b/src/share/jaxws_classes/com/sun/tools/internal/xjc/writer/SignatureWriter.java deleted file mode 100644 index c6c888c0..00000000 --- a/src/share/jaxws_classes/com/sun/tools/internal/xjc/writer/SignatureWriter.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright (c) 1997, 2011, 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 - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.tools.internal.xjc.writer; - -import java.io.IOException; -import java.io.Writer; -import java.util.Collection; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import java.util.TreeSet; - -import com.sun.codemodel.internal.JClass; -import com.sun.codemodel.internal.JClassContainer; -import com.sun.codemodel.internal.JDefinedClass; -import com.sun.codemodel.internal.JPackage; -import com.sun.codemodel.internal.JType; -import com.sun.tools.internal.xjc.outline.ClassOutline; -import com.sun.tools.internal.xjc.outline.FieldOutline; -import com.sun.tools.internal.xjc.outline.Outline; - -/** - * Dumps an annotated grammar in a simple format that - * makes signature check easy. - * - * @author - * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) - */ -public class SignatureWriter { - - public static void write( Outline model, Writer out ) - throws IOException { - - new SignatureWriter(model,out).dump(); - } - - private SignatureWriter( Outline model, Writer out ) { - this.out = out; - this.classes = model.getClasses(); - - for( ClassOutline ci : classes ) - classSet.put( ci.ref, ci ); - } - - /** All the ClassItems in this grammar. */ - private final Collection<? extends ClassOutline> classes; - /** Map from content interfaces to ClassItem. */ - private final Map<JDefinedClass,ClassOutline> classSet = new HashMap<JDefinedClass,ClassOutline>(); - - private final Writer out; - private int indent=0; - private void printIndent() throws IOException { - for( int i=0; i<indent; i++ ) - out.write(" "); - } - private void println(String s) throws IOException { - printIndent(); - out.write(s); - out.write('\n'); - } - - private void dump() throws IOException { - - // collect packages used in the class. - Set<JPackage> packages = new TreeSet<JPackage>(new Comparator<JPackage>() { - public int compare(JPackage lhs, JPackage rhs) { - return lhs.name().compareTo(rhs.name()); - } - }); - for( ClassOutline ci : classes ) - packages.add(ci._package()._package()); - - for( JPackage pkg : packages ) - dump( pkg ); - - out.flush(); - } - - private void dump( JPackage pkg ) throws IOException { - println("package "+pkg.name()+" {"); - indent++; - dumpChildren(pkg); - indent--; - println("}"); - } - - private void dumpChildren( JClassContainer cont ) throws IOException { - Iterator itr = cont.classes(); - while(itr.hasNext()) { - JDefinedClass cls = (JDefinedClass)itr.next(); - ClassOutline ci = classSet.get(cls); - if(ci!=null) - dump(ci); - } - } - - private void dump( ClassOutline ci ) throws IOException { - JDefinedClass cls = ci.implClass; - - StringBuilder buf = new StringBuilder(); - buf.append("interface "); - buf.append(cls.name()); - - boolean first=true; - Iterator itr = cls._implements(); - while(itr.hasNext()) { - if(first) { - buf.append(" extends "); - first=false; - } else { - buf.append(", "); - } - buf.append( printName((JClass)itr.next()) ); - } - buf.append(" {"); - println(buf.toString()); - indent++; - - // dump the field - for( FieldOutline fo : ci.getDeclaredFields() ) { - String type = printName(fo.getRawType()); - println(type+' '+fo.getPropertyInfo().getName(true)+';'); - } - - dumpChildren(cls); - - indent--; - println("}"); - } - - /** Get the display name of a type. */ - private String printName( JType t ) { - String name = t.fullName(); - if(name.startsWith("java.lang.")) - name = name.substring(10); // chop off the package name - return name; - } -} |