📄 namespacemapping.java
字号:
/* * Copyright 2002,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.axis.tools.ant.wsdl;import org.apache.tools.ant.BuildException;import org.apache.tools.ant.Project;import org.apache.tools.ant.ProjectComponent;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.util.Enumeration;import java.util.HashMap;import java.util.Properties;/** * Used for nested package definitions. * The file format used for storing mappings is a list of package=namespace */public class NamespaceMapping implements Mapper { private String namespace = null; private String packageName = null; private File mappingFile; /** * pass in the namespace to map to */ public NamespaceMapping() { } /** * the namespace in the WSDL. Required. * @param value new uri of the mapping */ public void setNamespace(String value) { namespace = value; } /** * the Java package to bind to. Required. * @param value java package name */ public void setPackage(String value) { packageName = value; } /** * name of a property file that contains mappings in * package=namespace format * @param file file to load */ public void setFile(File file) { mappingFile = file; } /** * map a namespace to a package * @param owner owning project component (For logging) * @param map map to assign to * @param packName package name * @param nspace namespace * @param packageIsKey if the package is to be the key for the map */ protected void map(ProjectComponent owner, HashMap map, String packName, String nspace, boolean packageIsKey) { owner.log("mapping "+nspace+" to "+packName, Project.MSG_VERBOSE); if(packageIsKey) { map.put(packName,nspace); } else { map.put(nspace, packName); } } /** * validate the option set */ private void validate() { if (mappingFile != null) { if (namespace != null || packageName != null) { throw new BuildException( "Namespace or Package cannot be used with a File attribute"); } } else { if (namespace == null) { throw new BuildException("namespace must be defined"); } if (packageName == null) { throw new BuildException("package must be defined"); } } } /** * Load a mapping file and save it to the map * @param owner owner component * @param map target map file * @param packageIsKey if the package is to be the key for the map * @throws BuildException if an IOException needed swallowing */ protected void mapFile(ProjectComponent owner, HashMap map, boolean packageIsKey) throws BuildException { Properties props = loadMappingPropertiesFile(); Enumeration keys = props.keys(); while (keys.hasMoreElements()) { String packageName = (String) keys.nextElement(); String namespace = props.getProperty(packageName); map(owner, map, packageName, namespace, packageIsKey); } } /** * load a file containing properties * @return a properties file with zero or more mappings * @throws BuildException if the load failed */ private Properties loadMappingPropertiesFile() throws BuildException { Properties props = new Properties(); FileInputStream instr = null; try { instr = new FileInputStream(mappingFile); props.load(new BufferedInputStream(instr)); } catch (IOException e) { throw new BuildException("Failed to load " + mappingFile, e); } finally { if (instr != null) { try { instr.close(); } catch (IOException e) { } } } return props; } /** * execute the mapping * @param owner owner object * @param map map to map to * @param packageIsKey if the package is to be the key for the map * @throws BuildException in case of emergency */ public void execute(ProjectComponent owner, HashMap map, boolean packageIsKey) throws BuildException { validate(); if (mappingFile != null) { mapFile(owner, map,packageIsKey); } else { map(owner, map, packageName, namespace, packageIsKey); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -