aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/Mapper.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/Mapper.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/Mapper.java322
1 files changed, 0 insertions, 322 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/Mapper.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/Mapper.java
deleted file mode 100644
index 941e8dd8..00000000
--- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/Mapper.java
+++ /dev/null
@@ -1,322 +0,0 @@
-/*
- * 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.tools.ant.types;
-
-import java.util.Properties;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-import org.apache.tools.ant.util.CompositeMapper;
-import org.apache.tools.ant.util.ContainerMapper;
-import org.apache.tools.ant.util.FileNameMapper;
-
-/**
- * Element to define a FileNameMapper.
- *
- */
-public class Mapper extends DataType implements Cloneable {
- // CheckStyle:VisibilityModifier OFF - bc
-
- protected MapperType type = null;
- protected String classname = null;
- protected Path classpath = null;
- protected String from = null;
- protected String to = null;
-
- // CheckStyle:VisibilityModifier ON
-
- private ContainerMapper container = null;
-
- /**
- * Construct a new <code>Mapper</code> element.
- * @param p the owning Ant <code>Project</code>.
- */
- public Mapper(Project p) {
- setProject(p);
- }
-
- /**
- * Set the type of <code>FileNameMapper</code> to use.
- * @param type the <code>MapperType</code> enumerated attribute.
- */
- public void setType(MapperType type) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.type = type;
- }
-
- /**
- * Cannot mix add and addconfigured in same type, so
- * provide this to override the add method.
- * @param fileNameMapper the <code>FileNameMapper</code> to add.
- */
- public void addConfigured(FileNameMapper fileNameMapper) {
- add(fileNameMapper);
- }
-
- /**
- * Add a nested <code>FileNameMapper</code>.
- * @param fileNameMapper the <code>FileNameMapper</code> to add.
- */
- public void add(FileNameMapper fileNameMapper) {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- if (container == null) {
- if (type == null && classname == null) {
- container = new CompositeMapper();
- } else {
- FileNameMapper m = getImplementation();
- if (m instanceof ContainerMapper) {
- container = (ContainerMapper) m;
- } else {
- throw new BuildException(String.valueOf(m)
- + " mapper implementation does not support nested mappers!");
- }
- }
- }
- container.add(fileNameMapper);
- setChecked(false);
- }
-
- /**
- * Add a Mapper
- * @param mapper the mapper to add
- */
- public void addConfiguredMapper(Mapper mapper) {
- add(mapper.getImplementation());
- }
-
- /**
- * Set the class name of the FileNameMapper to use.
- * @param classname the name of the class
- */
- public void setClassname(String classname) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.classname = classname;
- }
-
- /**
- * Set the classpath to load the FileNameMapper through (attribute).
- * @param classpath the classpath
- */
- public void setClasspath(Path classpath) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- if (this.classpath == null) {
- this.classpath = classpath;
- } else {
- this.classpath.append(classpath);
- }
- }
-
- /**
- * Set the classpath to load the FileNameMapper through (nested element).
- * @return a path object to be configured
- */
- public Path createClasspath() {
- if (isReference()) {
- throw noChildrenAllowed();
- }
- if (this.classpath == null) {
- this.classpath = new Path(getProject());
- }
- setChecked(false);
- return this.classpath.createPath();
- }
-
- /**
- * Set the classpath to load the FileNameMapper through via
- * reference (attribute).
- * @param ref the reference to the FileNameMapper
- */
- public void setClasspathRef(Reference ref) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- createClasspath().setRefid(ref);
- }
-
- /**
- * Set the argument to FileNameMapper.setFrom
- * @param from the from attribute to pass to the FileNameMapper
- */
- public void setFrom(String from) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.from = from;
- }
-
- /**
- * Set the argument to FileNameMapper.setTo
- * @param to the to attribute to pass to the FileNameMapper
- */
- public void setTo(String to) {
- if (isReference()) {
- throw tooManyAttributes();
- }
- this.to = to;
- }
-
- /**
- * Make this Mapper instance a reference to another Mapper.
- *
- * <p>You must not set any other attribute if you make it a
- * reference.</p>
- * @param r the reference to another mapper
- * @throws BuildException if other attributes are set
- */
- public void setRefid(Reference r) throws BuildException {
- if (type != null || from != null || to != null) {
- throw tooManyAttributes();
- }
- super.setRefid(r);
- }
-
- /**
- * Returns a fully configured FileNameMapper implementation.
- * @return a FileNameMapper object to be configured
- * @throws BuildException on error
- */
- public FileNameMapper getImplementation() throws BuildException {
- if (isReference()) {
- dieOnCircularReference();
- Reference r = getRefid();
- Object o = r.getReferencedObject(getProject());
- if (o instanceof FileNameMapper) {
- return (FileNameMapper) o;
- }
- if (o instanceof Mapper) {
- return ((Mapper) o).getImplementation();
- }
- String od = o == null ? "null" : o.getClass().getName();
- throw new BuildException(od + " at reference '"
- + r.getRefId() + "' is not a valid mapper reference.");
- }
-
- if (type == null && classname == null && container == null) {
- throw new BuildException(
- "nested mapper or "
- + "one of the attributes type or classname is required");
- }
-
- if (container != null) {
- return container;
- }
-
- if (type != null && classname != null) {
- throw new BuildException(
- "must not specify both type and classname attribute");
- }
-
- try {
- FileNameMapper m = getImplementationClass().newInstance();
- final Project p = getProject();
- if (p != null) {
- p.setProjectReference(m);
- }
- m.setFrom(from);
- m.setTo(to);
-
- return m;
- } catch (BuildException be) {
- throw be;
- } catch (Throwable t) {
- throw new BuildException(t);
- }
- }
-
- /**
- * Gets the Class object associated with the mapper implementation.
- * @return <code>Class</code>.
- * @throws ClassNotFoundException if the class cannot be found
- */
- protected Class<? extends FileNameMapper> getImplementationClass() throws ClassNotFoundException {
-
- String cName = this.classname;
- if (type != null) {
- cName = type.getImplementation();
- }
-
- ClassLoader loader = (classpath == null)
- ? getClass().getClassLoader()
- // Memory leak in line below
- : getProject().createClassLoader(classpath);
-
- return Class.forName(cName, true, loader).asSubclass(FileNameMapper.class);
- }
-
- /**
- * Performs the check for circular references and returns the
- * referenced Mapper.
- * @deprecated since Ant 1.7.1 because a mapper might ref a
- * FileNameMapper implementation directly.
- * @return the referenced Mapper
- */
- protected Mapper getRef() {
- return getCheckedRef(Mapper.class, getDataTypeName());
- }
-
- /**
- * Class as Argument to FileNameMapper.setType.
- */
- public static class MapperType extends EnumeratedAttribute {
- private Properties implementations;
-
- /** Constructor for the MapperType enumeration */
- public MapperType() {
- implementations = new Properties();
- implementations.put("identity",
- "org.apache.tools.ant.util.IdentityMapper");
- implementations.put("flatten",
- "org.apache.tools.ant.util.FlatFileNameMapper");
- implementations.put("glob",
- "org.apache.tools.ant.util.GlobPatternMapper");
- implementations.put("merge",
- "org.apache.tools.ant.util.MergingMapper");
- implementations.put("regexp",
- "org.apache.tools.ant.util.RegexpPatternMapper");
- implementations.put("package",
- "org.apache.tools.ant.util.PackageNameMapper");
- implementations.put("unpackage",
- "org.apache.tools.ant.util.UnPackageNameMapper");
- }
-
- /**
- * @return the filenamemapper names
- */
- public String[] getValues() {
- return new String[] {"identity", "flatten", "glob",
- "merge", "regexp", "package", "unpackage"};
- }
-
- /**
- * @return the classname for the filenamemapper name
- */
- public String getImplementation() {
- return implementations.getProperty(getValue());
- }
- }
-
-}