blob: 54f1b069554c3b76458772ae5ee0aea72abdbf9b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 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);
public Object getQNameToMappingObject(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
*
* @param qName
* @return the status object
* @see #addTypeMappingStatus(javax.xml.namespace.QName, Object)
*/
public Object getTypeMappingStatus(QName qName);
}