Package org.mongeez.reader

Source Code of org.mongeez.reader.FilesetXMLReader

/*
* Copyright 2011 SecondMarket Labs, LLC.
*
* 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.mongeez.reader;

import org.mongeez.commands.ChangeFile;
import org.mongeez.commands.ChangeFileSet;

import org.apache.commons.digester3.Digester;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.Resource;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class FilesetXMLReader {

    private static final Logger logger = LoggerFactory.getLogger(FilesetXMLReader.class);

    public List<Resource> getFiles(Resource file) {
        List<Resource> files = new ArrayList<Resource>();

        try {
            Digester digester = new Digester();

            digester.setValidating(false);

            digester.addObjectCreate("changeFiles", ChangeFileSet.class);
            digester.addObjectCreate("changeFiles/file", ChangeFile.class);
            digester.addSetProperties("changeFiles/file");
            digester.addSetNext("changeFiles/file", "add");

            logger.info("Parsing XML Fileset file {}", file.getFilename());
            ChangeFileSet changeFileSet = (ChangeFileSet) digester.parse(file.getInputStream());
            if (changeFileSet != null) {
                logger.info("Num of changefiles found " + changeFileSet.getChangeFiles().size());
                for (ChangeFile changeFile : changeFileSet.getChangeFiles()) {
                    files.add(file.createRelative(changeFile.getPath()));
                }
            }
            else {
                logger.error("The file {} doesn't seem to contain a changeFiles declaration. Are you "
                        + "using the correct file to initialize Mongeez?", file.getFilename());
            }
        } catch (IOException e) {
            logger.error("IOException", e);
        } catch (org.xml.sax.SAXException e) {
            logger.error("SAXException", e);
        }
        return files;
    }
}
TOP

Related Classes of org.mongeez.reader.FilesetXMLReader

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.