blob: 96fc6dda8366759df09c533ec46b1728c8171225 [file] [log] [blame]
/*
* Copyright 2004,2005 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.axis2.wsdl.databinding;
import org.apache.axiom.om.OMElement;
import javax.xml.namespace.QName;
import java.util.Map;
public interface TypeMapper {
/**
* Returns whether the mapping is the object type or the normal class name type
* @return Returns boolean.
*/
public boolean isObjectMappingPresent();
/**
* Gets the type mapping class name.
*
* @param qname name of the XML element to be mapped
* @return Returns a string that represents the particular type.
*/
public String getTypeMappingName(QName qname);
/**
* Gets the type mapping Object.
*
* @param qname name of the XML element to be mapped
* @return Returns an Object that represents the particular class in a pre specified form.
* It can be a specific format to the databinding framework used.
* This allows tight integrations with the databinding framework, allowing the emitter
* to write the databinding classes in its own way.
*/
public Object getTypeMappingObject(QName qname);
/**
* Gets the parameter name.
*
* @param qname name of the XML element to get a parameter
* @return Returns a unique parameter name.
*/
public String getParameterName(QName qname);
/**
* Adds a type mapping name to the type mapper.
*
* @param qname
* @param value
* @see #getTypeMappingName(javax.xml.namespace.QName)
*/
public void addTypeMappingName(QName qname, String value);
/**
* Adds a type mapping object to the type mapper.
*
* @param qname the xml Qname that this type refers to
* @param value the type mapping object
* @see #getTypeMappingObject(javax.xml.namespace.QName)
*/
public void addTypeMappingObject(QName qname, Object value);
/**
* @return Returns a map containing all type mapping names
* i.e. Qname to classname
*/
public Map getAllMappedNames();
/**
* @return Returns a map containing all type mapping model objects
* i.e. Qname to model objects
*/
public Map getAllMappedObjects();
/**
*
* @return the default mapping name for this type mapper
*/
public String getDefaultMappingName();
/**
* Sets the default type mapping - the databinders may
* change the default mapping to suit their default
* mapping
* @param defaultMapping
*/
public void setDefaultMappingName(String defaultMapping);
/**
* Allows the storage of a status object with a mapping to
* the qname. This may be used to store certain status information
* that will be used by different type mappers. A given type mapper
* may choose not to implement this!
* @param qname
* @param status
*/
public void addTypeMappingStatus(QName qName,Object status);
/**
* Returns the relevant status object given the qName of the xml element
* @see #addTypeMappingStatus(javax.xml.namespace.QName, Object)
* @param qName
* @return the status object
*/
public Object getTypeMappingStatus(QName qName);
}