| /* |
| * 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.schema.writer; |
| |
| import org.apache.axis2.schema.BeanWriterMetaInfoHolder; |
| import org.apache.axis2.schema.CompilerOptions; |
| import org.apache.axis2.schema.SchemaCompilationException; |
| import org.apache.ws.commons.schema.XmlSchemaElement; |
| import org.apache.ws.commons.schema.XmlSchemaSimpleType; |
| |
| import javax.xml.namespace.QName; |
| import java.io.IOException; |
| import java.util.Map; |
| |
| /** |
| * The bean writer interface. The schema compiler expects one of these to be |
| * presented to it and calls the appropriate methods |
| */ |
| public interface BeanWriter { |
| |
| |
| /** |
| * Initializes the writer with compiler options. |
| * |
| * @param options |
| * @throws IOException |
| */ |
| public void init(CompilerOptions options) throws SchemaCompilationException; |
| |
| /** |
| * Writes a wrapped class. This will have effect only if the CompilerOptions wrapclassses |
| * returns true. |
| */ |
| public void writeBatch() throws SchemaCompilationException; |
| |
| /** |
| * Gets a map of models. This is useful for tight integrations where the internal workings |
| * of the schema compiler may be exposed. |
| */ |
| public Map getModelMap(); |
| |
| /** Make the fully qualified class name for an element or named type |
| * @param qName the qualified Name for this element or type in the schema |
| * @return the appropriate fully qualified class name to use in generated code |
| */ |
| public String makeFullyQualifiedClassName(QName qName); |
| |
| /** |
| * Write a complex type |
| * |
| * @param complexType |
| * @param typeMap |
| * @param metainf |
| * @param fullyQualifiedClassName the name returned by makeFullyQualifiedClassName() or null if it wasn't called |
| * @return Returns String. |
| * @throws SchemaCompilationException |
| */ |
| public String write(QName qname, |
| Map<QName,String> typeMap, |
| Map<QName,String> groupTypeMap, |
| BeanWriterMetaInfoHolder metainf, |
| boolean isAbstract) |
| throws SchemaCompilationException; |
| |
| /** |
| * Write a element |
| * |
| * @param element |
| * @param typeMap |
| * @param metainf |
| * @return Returns String. |
| * @throws SchemaCompilationException |
| */ |
| public String write(XmlSchemaElement element, |
| Map<QName,String> typeMap, |
| Map<QName,String> groupTypeMap, |
| BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException; |
| |
| |
| /** |
| * Write a simple type |
| * |
| * @param simpleType |
| * @param typeMap |
| * @param metainf |
| * @return Returns String. |
| * @throws SchemaCompilationException |
| */ |
| public String write(XmlSchemaSimpleType simpleType, |
| Map<QName,String> typeMap, |
| Map<QName,String> groupTypeMap, |
| BeanWriterMetaInfoHolder metainf) throws SchemaCompilationException; |
| |
| |
| /** |
| * Find whether the mapper class name is present |
| * @param mapperPackageName |
| */ |
| public String getExtensionMapperPackageName(); |
| |
| /** |
| * Registers the mapper package name - this is relevant to languages |
| * that enforce packaging such as Java or C#. May be ignored in other |
| * languages |
| * @param mapperPackageName |
| */ |
| public void registerExtensionMapperPackageName(String mapperPackageName); |
| |
| |
| /** |
| * Write the extensions mapper component - this is relevant to only the OOP languages |
| * and a particular implementation may ignore this |
| * @param metainfArray |
| * @param namespaceToUse |
| */ |
| public void writeExtensionMapper(BeanWriterMetaInfoHolder[] metainfArray) throws SchemaCompilationException; |
| |
| public String getDefaultClassName(); |
| |
| public String getDefaultClassArrayName(); |
| |
| public String getDefaultAttribClassName(); |
| |
| public String getDefaultAttribArrayClassName(); |
| |
| } |