001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one
003     * or more contributor license agreements.  See the NOTICE file
004     * distributed with this work for additional information
005     * regarding copyright ownership.  The ASF licenses this file
006     * to you under the Apache License, Version 2.0 (the
007     * "License"); you may not use this file except in compliance
008     * with the License.  You may obtain a copy of the License at
009     *
010     * http://www.apache.org/licenses/LICENSE-2.0
011     *
012     * Unless required by applicable law or agreed to in writing,
013     * software distributed under the License is distributed on an
014     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015     * KIND, either express or implied.  See the License for the
016     * specific language governing permissions and limitations
017     * under the License.
018     */
019    package org.apache.commons.compress.changes;
020    
021    import java.util.ArrayList;
022    import java.util.List;
023    
024    /**
025     * Stores the results of an performed ChangeSet operation.
026     */
027    public class ChangeSetResults {
028        private final List addedFromChangeSet = new ArrayList();
029        private final List addedFromStream = new ArrayList();
030        private final List deleted = new ArrayList();
031        
032        /**
033         * Adds the filename of a recently deleted file to the result list.
034         * @param fileName the file which has been deleted
035         */
036        void deleted(String fileName) {
037            deleted.add(fileName);
038        }
039        
040        /**
041         * Adds the name of a file to the result list which has been 
042         * copied from the source stream to the target stream.
043         * @param fileName the file name which has been added from the original stream
044         */
045        void addedFromStream(String fileName) {
046            addedFromStream.add(fileName);
047        }
048        
049        /**
050         * Adds the name of a file to the result list which has been
051         * copied from the changeset to the target stream
052         * @param fileName the name of the file
053         */
054        void addedFromChangeSet(String fileName) {
055            addedFromChangeSet.add(fileName);
056        }
057    
058        /**
059         * Returns a list of filenames which has been added from the changeset
060         * @return the list of filenames
061         */
062        public List getAddedFromChangeSet() {
063            return addedFromChangeSet;
064        }
065    
066        /**
067         * Returns a list of filenames which has been added from the original stream
068         * @return the list of filenames
069         */
070        public List getAddedFromStream() {
071            return addedFromStream;
072        }
073    
074        /**
075         * Returns a list of filenames which has been deleted
076         * @return the list of filenames
077         */
078        public List getDeleted() {
079            return deleted;
080        }
081        
082        /**
083         * Checks if an filename already has been added to the result list
084         * @param filename the filename to check
085         * @return true, if this filename already has been added
086         */
087        boolean hasBeenAdded(String filename) {
088            if(addedFromChangeSet.contains(filename) || addedFromStream.contains(filename)) {
089                return true;
090            } 
091            return false;
092        }
093    }