001package net.gdface.codegen.webclient; 002 003import net.gdface.utils.Assert; 004import net.gdface.utils.Judge; 005 006import org.slf4j.Logger; 007import org.slf4j.LoggerFactory; 008 009public class KSoapClient<T> extends WebClient<T> implements KSoapConstants { 010 private static final Logger logger = LoggerFactory.getLogger(KSoapClient.class); 011 private final String serviceName; 012 private final String stubPackage; 013 private final String stubClassSimpleName; 014 private final String stubClassName; 015 016 public KSoapClient(Class<T> interfaceClass, Class<? extends T> refClass, Class<?> serviceClass, String serviceName, 017 String stubPackage) { 018 super(interfaceClass, refClass, serviceClass); 019 Assert.notEmpty(stubPackage, "stubPackage"); 020 this.serviceName = Judge.isEmpty(serviceName) ? serviceClass.getSimpleName() : serviceName; 021 this.stubPackage = stubPackage; 022 this.stubClassSimpleName = serviceName + "Stub"; 023 this.stubClassName = new StringBuilder(this.stubPackage).append(".").append(stubClassSimpleName).toString(); 024 } 025 026 @Override 027 public boolean compile() { 028 boolean compileOk = false; 029 try { 030 if (super.compile()) { 031 method2PortMap = createMethod2PortMapMap(); 032 addImportedClassFromMethods(method2PortMap.values()); 033 compileOk = true; 034 } 035 } catch (NoSuchMethodException e) { 036 logger.error(e.toString()); 037 } 038 return compileOk; 039 } 040 041 /** 042 * @return serviceName 043 */ 044 public String getServiceName() { 045 return serviceName; 046 } 047 048 /** 049 * @return stubPackage 050 */ 051 public String getStubPackage() { 052 return stubPackage; 053 } 054 055 /** 056 * @return stubClassSimpleName 057 */ 058 public String getStubClassSimpleName() { 059 return stubClassSimpleName; 060 } 061 062 /** 063 * @return stubClassName 064 */ 065 public String getStubClassName() { 066 return stubClassName; 067 } 068 069}