com.processpuzzle.application.resource.domain.XmlDataLoader.java Source code

Java tutorial

Introduction

Here is the source code for com.processpuzzle.application.resource.domain.XmlDataLoader.java

Source

/*
Name: 
- XmlDataLoader
    
Description: 
-  
    
Requires:
- 
    
Provides:
- 
    
Part of: ProcessPuzzle Framework, Domain and Business Model Ready Architecture. Provides content, workflow and social networking functionality. 
http://www.processpuzzle.com
    
ProcessPuzzle - Content and Workflow Management Integration Business Platform
    
Author(s): 
- Zsolt Zsuffa
    
Copyright: (C) 2011 This program is free software: you can redistribute it and/or modify it under the terms of the 
GNU General Public License as published by the Free Software Foundation, either version 3 of the License, 
or (at your option) any later version.
    
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
    
You should have received a copy of the GNU General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/*
 * Created on Feb 3, 2006
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package com.processpuzzle.application.resource.domain;

import java.io.IOException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
import org.dom4j.util.XMLErrorHandler;
import org.springframework.core.io.ResourceLoader;

/**
 * @author zsolt.zsuffa
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public abstract class XmlDataLoader extends DataFromResourceLoader {
    protected Document document = null;
    protected String schemaPath = null;
    protected XMLErrorHandler errorHandler = null;
    protected XmlValidator validator = null;

    public XmlDataLoader(String path) {
        this(path, null);
    }

    public XmlDataLoader(ResourceLoader resourceLoader, String path) {
        this(resourceLoader, path, null);
    }

    public XmlDataLoader(String resourcePath, String schemaPath) {
        this(null, resourcePath, schemaPath);
    }

    public XmlDataLoader(ResourceLoader resourceLoader, String resourcePath, String schemaPath) {
        super(resourceLoader, resourcePath);
        this.schemaPath = schemaPath;
    }

    public void loadData() throws XmlDataLoaderException {
        super.loadData();
        readXml();
    }

    //Properties
    public Document getDocument() {
        return document;
    }

    public String getSchemaPath() {
        return schemaPath;
    }

    public boolean isValid() {
        if (schemaPath != null && validator != null) {
            return validator.isValid();
        } else
            return true;
    }

    //Private methods
    private void readXml() throws XmlDataLoaderException {
        SAXReader reader = new SAXReader();
        if (schemaPath != null) {
            validator = new JAXPValidator(resourcePath, schemaPath);
            try {
                validator.validate();
            } catch (XmlSchemaValidationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        try {
            document = reader.read(resource.getInputStream());
        } catch (DocumentException e) {
            throw new XmlValidationException(resourcePath, e);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}