Package org.apache.ws.jaxme.generator.sg.impl

Source Code of org.apache.ws.jaxme.generator.sg.impl.LocalContext

/*
* Copyright 2003, 2004  The Apache Software Foundation
*
* 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
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.

*/
package org.apache.ws.jaxme.generator.sg.impl;

import org.apache.ws.jaxme.generator.sg.Context;
import org.apache.ws.jaxme.generator.sg.SchemaSG;
import org.apache.ws.jaxme.js.JavaQName;
import org.apache.ws.jaxme.js.JavaQNameImpl;
import org.apache.ws.jaxme.xs.XSObject;
import org.apache.ws.jaxme.xs.jaxb.JAXBClass;
import org.apache.ws.jaxme.xs.jaxb.JAXBClassOwner;
import org.xml.sax.SAXException;


/**
* @author <a href="mailto:joe@ispsoft.de">Jochen Wiedmann</a>
*/
public class LocalContext extends AbstractContext {
  /** <p>Creates a new instance of LocalClassContext.java.</p>
   */
  public LocalContext(Context pContext, String pName, XSObject pJAXBClassOwner,
                       String pPrefix, String pSuffix, SchemaSG pSchemaSG) throws SAXException {
    if (pJAXBClassOwner == null) {
      throw new NullPointerException("The XSObject argument must not be null.");
    }

    JAXBClassOwner jaxbClassOwner = null;
    if (pJAXBClassOwner instanceof JAXBClassOwner) {
      jaxbClassOwner = (JAXBClassOwner) pJAXBClassOwner;
    }

    String className = null, implementationName = null;
    JAXBClass jaxbClass = (jaxbClassOwner == null) ? null : jaxbClassOwner.getJAXBClass();
    if (jaxbClass != null) {
      className = jaxbClass.getName();
      implementationName = jaxbClass.getImplClass();
    }

    if (className == null) {
      String prefix = null, suffix = null;
      className = getClassNameFromLocalName(pJAXBClassOwner.getLocator(), pName, pSchemaSG);
      if (prefix == null) { prefix = pPrefix; }
      if (prefix != null) className = prefix + className;
      if (suffix == null) { suffix = pSuffix; }
      if (suffix != null) className += suffix;
    }
    JavaQName xmlInterfaceName = JavaQNameImpl.getInnerInstance(pContext.getXMLInterfaceName(), className);
    setXMLInterfaceName(xmlInterfaceName);

    if (implementationName == null) {
      setXMLImplementationName(JavaQNameImpl.getInnerInstance(pContext.getXMLImplementationName(),
                                                              className + "Impl"));
    } else {
      setXMLImplementationName(JavaQNameImpl.getInstance(implementationName, true));
    }
    setXMLHandlerName(JavaQNameImpl.getInnerInstance(pContext.getXMLHandlerName(), className + "Handler"));
    setXMLSerializerName(JavaQNameImpl.getInnerInstance(pContext.getXMLSerializerName(), className + "Serializer"));
    setXMLValidatorName(JavaQNameImpl.getInstance(xmlInterfaceName.getPackageName() + ".impl",
                                                  xmlInterfaceName.getClassName() + "Validator"));
    setPMName(JavaQNameImpl.getInstance(xmlInterfaceName.getPackageName() + ".impl",
                                        xmlInterfaceName.getClassName() + "PM"));
  }

  public boolean isGlobal() { return false; }
}
TOP

Related Classes of org.apache.ws.jaxme.generator.sg.impl.LocalContext

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.