aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/property/ResolvePropertyMap.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/property/ResolvePropertyMap.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/property/ResolvePropertyMap.java151
1 files changed, 0 insertions, 151 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/property/ResolvePropertyMap.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/property/ResolvePropertyMap.java
deleted file mode 100644
index 5bdd3545..00000000
--- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/property/ResolvePropertyMap.java
+++ /dev/null
@@ -1,151 +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.property;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-
-/**
- * Class to resolve properties in a map. This class is explicitly not threadsafe.
- * @since Ant 1.8.0
- */
-public class ResolvePropertyMap implements GetProperty {
- private final Set<String> seen = new HashSet<String>();
- private final ParseProperties parseProperties;
- private final GetProperty master;
- private Map<String, Object> map;
- private String prefix;
- // whether properties of the value side of the map should be
- // expanded
- private boolean prefixValues = false;
- // whether the current getProperty call is expanding the key side
- // of the map
- private boolean expandingLHS = true;
-
- /**
- * Constructor with a master getproperty and a collection of expanders.
- * @param project the current ant project.
- * @param master the master property holder (usually PropertyHelper)
- * @param expanders a collection of expanders (usually from PropertyHelper).
- */
- public ResolvePropertyMap(Project project, GetProperty master, Collection<PropertyExpander> expanders) {
- this.master = master;
- this.parseProperties = new ParseProperties(project, expanders, this);
- }
-
- /**
- * Returns the value of a property if it is set.
- * @param name name of the property.
- * @return the property value, or null for no match or for name being null.
- */
- public Object getProperty(String name) {
- if (seen.contains(name)) {
- throw new BuildException(
- "Property " + name + " was circularly " + "defined.");
- }
-
- try {
-
- // If the property we are looking up is a key in the map
- // (first call into this method from resolveAllProperties)
- // or we've been asked to prefix the value side (later
- // recursive calls via the GetProperty interface) the
- // prefix must be prepended when looking up the property
- // outside of the map.
- String fullKey = name;
- if (prefix != null && (expandingLHS || prefixValues)) {
- fullKey = prefix + name;
- }
-
- Object masterValue = master.getProperty(fullKey);
- if (masterValue != null) {
- // If the property already has a value outside of the
- // map, use that value to enforce property
- // immutability.
-
- return masterValue;
- }
-
- seen.add(name);
-
- String recursiveCallKey = name;
- if (prefix != null && !expandingLHS && !prefixValues) {
- // only look up unprefixed properties inside the map
- // if prefixValues is true or we are expanding the key
- // itself
- recursiveCallKey = prefix + name;
- }
-
- expandingLHS = false;
- // will recurse into this method for each property
- // reference found in the map's value
- return parseProperties.parseProperties((String) map.get(recursiveCallKey));
- } finally {
- seen.remove(name);
- }
- }
-
- /**
- * The action method - resolves all the properties in a map.
- * @param map the map to resolve properties in.
- * @deprecated since Ant 1.8.2, use the three-arg method instead.
- */
- public void resolveAllProperties(Map<String, Object> map) {
- resolveAllProperties(map, null, false);
- }
-
- /**
- * The action method - resolves all the properties in a map.
- * @param map the map to resolve properties in.
- * @param prefix the prefix the properties defined inside the map
- * will finally receive - may be null.
- * @deprecated since Ant 1.8.2, use the three-arg method instead.
- */
- public void resolveAllProperties(Map<String, Object> map, String prefix) {
- resolveAllProperties(map, null, false);
- }
-
- /**
- * The action method - resolves all the properties in a map.
- * @param map the map to resolve properties in.
- * @param prefix the prefix the properties defined inside the map
- * will finally receive - may be null.
- * @param prefixValues - whether the prefix will be applied
- * to properties on the value side of the map as well.
- */
- public void resolveAllProperties(Map<String, Object> map, String prefix,
- boolean prefixValues) {
- // The map, prefix and prefixValues flag get used in the
- // getProperty callback
- this.map = map;
- this.prefix = prefix;
- this.prefixValues = prefixValues;
-
- for (String key : map.keySet()) {
- expandingLHS = true;
- Object result = getProperty(key);
- String value = result == null ? "" : result.toString();
- map.put(key, value);
- }
- }
-}