| /* |
| * 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); |
| } |