/******************************************************************************* * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *******************************************************************************/ package org.ebayopensource.turmeric.tools.codegen.external; import java.io.File; import java.io.InputStream; import java.io.Writer; import java.util.Set; import javax.xml.bind.JAXB; import javax.xml.bind.JAXBElement; import javax.xml.namespace.QName; import org.ebayopensource.turmeric.runtime.common.types.SOAConstants; import org.ebayopensource.turmeric.tools.codegen.CodeGenContext; import org.ebayopensource.turmeric.tools.codegen.exception.CodeGenFailedException; import org.ebayopensource.turmeric.common.config.ClientConfigList; import org.ebayopensource.turmeric.common.config.ObjectFactory; import org.ebayopensource.turmeric.common.config.ServiceConfig; import org.ebayopensource.turmeric.common.config.ServiceSecurityConfig; import org.ebayopensource.turmeric.common.config.ServiceTypeMappingConfig; public class SunJavaXmlBindingImpl implements JavaXmlBinder { //private static final String DEFAULT_SCHEMA_FILE_NAME = "schema1.xsd"; private static final String DEFAULT_NS = SOAConstants.SOA_CONFIG_NAMESPACE; private final static QName serviceQNAME = new QName(DEFAULT_NS, "service"); private final static QName clientConfigListQNAME = new QName(DEFAULT_NS, "client-config-list"); private final static QName serviceConfigQNAME = new QName(DEFAULT_NS, "service-config"); private final static QName securityPolicyQNAME = new QName(DEFAULT_NS, "security-policy"); public SunJavaXmlBindingImpl() { } public void marshal(Object typeObj, Writer fileWriter) { JAXB.marshal(typeObj, fileWriter); } public <T> T unmarshal(File xmlFile, Class<T> type) { return JAXB.unmarshal(xmlFile, type); } public <T> T unmarshal(InputStream input, Class<T> type) { return JAXB.unmarshal(input, type); } public void generateSchema( CodeGenContext codeGenCtx, Set<Class<?>> typesReferred, String schemaFileName, String destLocation) throws CodeGenFailedException { /*Commenting this method.Using internal classes * Not permitted anymore. */ } public void generateTypeMappingsXml( ServiceTypeMappingConfig typeMappings, Writer fileWriter) throws Exception { // create an element for marshalling JAXBElement<ServiceTypeMappingConfig> typeMappingsElement = new JAXBElement<ServiceTypeMappingConfig>(serviceQNAME, ServiceTypeMappingConfig.class, null, typeMappings); marshal(typeMappingsElement, fileWriter); } public void generateClientConfigXml( ClientConfigList clientCfgList, Writer fileWriter) throws Exception { // create an element for marshalling JAXBElement<ClientConfigList> clientCfgListElement = new JAXBElement<ClientConfigList>(clientConfigListQNAME, ClientConfigList.class, null, clientCfgList); marshal(clientCfgListElement, fileWriter); } public void generateServiceConfigXml( ServiceConfig serviceConfig, Writer fileWriter) throws Exception { // create an element for marshalling JAXBElement<ServiceConfig> serviceConfigElement = new JAXBElement<ServiceConfig>(serviceConfigQNAME, ServiceConfig.class, null, serviceConfig); marshal(serviceConfigElement, fileWriter); } public void generateSecurityPolicyXml( ServiceSecurityConfig securityPolicyConfig, Writer fileWriter) throws CodeGenFailedException { // create an element for marshalling JAXBElement<ServiceSecurityConfig> serviceSecurityConfigElement = new JAXBElement<ServiceSecurityConfig>(securityPolicyQNAME, ServiceSecurityConfig.class, null, securityPolicyConfig); marshal(serviceSecurityConfigElement, fileWriter); } }