KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > tools > processors > wsdl2 > internal > ClassNameAllocatorImpl


1 package org.objectweb.celtix.tools.processors.wsdl2.internal;
2
3 import java.util.Collection JavaDoc;
4
5 import javax.wsdl.PortType;
6
7 import com.sun.tools.xjc.api.ClassNameAllocator;
8
9 import org.objectweb.celtix.tools.utils.ProcessorUtil;
10
11 public class ClassNameAllocatorImpl implements ClassNameAllocator {
12     private static final String JavaDoc TYPE_SUFFIX = "_Type";
13     private Collection JavaDoc<PortType> portTypes;
14     private ClassCollector collector;
15     public ClassNameAllocatorImpl(ClassCollector classCollector) {
16         collector = classCollector;
17     }
18
19     private boolean isNameCollision(String JavaDoc packageName, String JavaDoc className) {
20         return collector.containSeiClass(packageName, className);
21     }
22
23     public String JavaDoc assignClassName(String JavaDoc packageName, String JavaDoc className) {
24         String JavaDoc fullClzName = className;
25         if (isNameCollision(packageName, className)) {
26             fullClzName = className + TYPE_SUFFIX;
27         }
28
29         collector.addTypesClassName(packageName, className, packageName + "." + fullClzName);
30         return fullClzName;
31     }
32
33     public void setPortTypes(Collection JavaDoc<PortType> types, String JavaDoc packageName) {
34         portTypes = types;
35         setSeiClassNames(packageName);
36     }
37
38     private void setSeiClassNames(String JavaDoc packageName) {
39         for (PortType porttype : portTypes) {
40             String JavaDoc ns = porttype.getQName().getNamespaceURI();
41             String JavaDoc type = porttype.getQName().getLocalPart();
42             String JavaDoc pkgName = ProcessorUtil.parsePackageName(ns, packageName);
43             String JavaDoc className = ProcessorUtil.mangleNameToClassName(type);
44             String JavaDoc fullClassName = pkgName + "." + className;
45             if (packageName == null) {
46                 packageName = pkgName;
47             }
48             collector.addSeiClassName(packageName, className, fullClassName);
49         }
50     }
51 }
52
Popular Tags