diff options
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java')
-rw-r--r-- | framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java | 236 |
1 files changed, 0 insertions, 236 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java b/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java deleted file mode 100644 index 1446e890..00000000 --- a/framework/src/ant/apache-ant-1.9.6/src/main/org/apache/tools/ant/types/selectors/modifiedselector/PropertiesfileCache.java +++ /dev/null @@ -1,236 +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.selectors.modifiedselector; - - -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.util.Enumeration; -import java.util.Iterator; -import java.util.Properties; -import java.util.Vector; - - -/** - * Use java.util.Properties for storing the values. - * The use of this Cache-implementation requires the use of the parameter - * <param name="cache.cachefile" .../> for defining, where to store the - * properties file. - * - * The ModifiedSelector sets the <i>cachefile</i> to the default value - * <i>cache.properties</i>. - * - * Supported <param>s are: - * <table> - * <tr> - * <th>name</th><th>values</th><th>description</th><th>required</th> - * </tr> - * <tr> - * <td> cache.cachefile </td> - * <td> <i>path to file</i> </td> - * <td> the name of the properties file </td> - * <td> yes </td> - * </tr> - * </table> - * - * @version 2003-09-13 - * @since Ant 1.6 - */ -public class PropertiesfileCache implements Cache { - - - // ----- member variables - configuration ----- - - - /** Where to store the properties? */ - private File cachefile = null; - - /** Object for storing the key-value-pairs. */ - private Properties cache = new Properties(); - - - // ----- member variables - internal use ----- - - - /** Is the cache already loaded? Prevents from multiple load operations. */ - private boolean cacheLoaded = false; - - /** Must the cache be saved? Prevents from multiple save operations. */ - private boolean cacheDirty = true; - - - // ----- Constructors ----- - - - /** Bean-Constructor. */ - public PropertiesfileCache() { - } - - /** - * Constructor. - * @param cachefile set the cachefile - */ - public PropertiesfileCache(File cachefile) { - this.cachefile = cachefile; - } - - - // ----- Cache-Configuration ----- - - - /** - * Setter. - * @param file new value - */ - public void setCachefile(File file) { - cachefile = file; - } - - - /** - * Getter. - * @return the cachefile - */ - public File getCachefile() { - return cachefile; - } - - /** - * This cache is valid if the cachefile is set. - * @return true if all is ok false otherwise - */ - public boolean isValid() { - return (cachefile != null); - } - - - // ----- Data Access - - - /** - * Load the cache from underlying properties file. - */ - public void load() { - if ((cachefile != null) && cachefile.isFile() && cachefile.canRead()) { - try { - BufferedInputStream bis = new BufferedInputStream( - new FileInputStream(cachefile)); - cache.load(bis); - bis.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } - // after loading the cache is up to date with the file - cacheLoaded = true; - cacheDirty = false; - } - - /** - * Saves modification of the cache. - * Cache is only saved if there is one ore more entries. - * Because entries can not be deleted by this API, this Cache - * implementation checks the existence of entries before creating the file - * for performance optimisation. - */ - public void save() { - if (!cacheDirty) { - return; - } - if ((cachefile != null) && cache.propertyNames().hasMoreElements()) { - try { - BufferedOutputStream bos = new BufferedOutputStream( - new FileOutputStream(cachefile)); - cache.store(bos, null); - bos.flush(); - bos.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } - cacheDirty = false; - } - - /** Deletes the cache and its underlying file. */ - public void delete() { - cache = new Properties(); - cachefile.delete(); - cacheLoaded = true; - cacheDirty = false; - } - - /** - * Returns a value for a given key from the cache. - * @param key the key - * @return the stored value - */ - public Object get(Object key) { - if (!cacheLoaded) { - load(); - } - try { - return cache.getProperty(String.valueOf(key)); - } catch (ClassCastException e) { - return null; - } - } - - /** - * Saves a key-value-pair in the cache. - * @param key the key - * @param value the value - */ - public void put(Object key, Object value) { - cache.put(String.valueOf(key), String.valueOf(value)); - cacheDirty = true; - } - - /** - * Returns an iterator over the keys in the cache. - * @return An iterator over the keys. - */ - public Iterator<String> iterator() { - Vector<String> v = new Vector<String>(); - Enumeration<?> en = cache.propertyNames(); - while (en.hasMoreElements()) { - v.add(en.nextElement().toString()); - } - return v.iterator(); - } - - - // ----- additional ----- - - - /** - * Override Object.toString(). - * @return information about this cache - */ - public String toString() { - StringBuffer buf = new StringBuffer(); - buf.append("<PropertiesfileCache:"); - buf.append("cachefile=").append(cachefile); - buf.append(";noOfEntries=").append(cache.size()); - buf.append(">"); - return buf.toString(); - } -} |