Package org.apache.fop.apps

Source Code of org.apache.fop.apps.Options

/*
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources."
*/


package org.apache.fop.apps;

//sax
import org.xml.sax.InputSource;

//java
import java.io.File;
import java.io.InputStream;

//fop
import org.apache.fop.messaging.MessageHandler;
import org.apache.fop.configuration.Configuration;
import org.apache.fop.configuration.ConfigurationReader;
 
/**
*  Options handles loading of configuration files and
*  additional setting of commandline options
*/

public class Options {
  boolean errorDump = false;
 
    public Options ()
  throws FOPException
    {
  this.loadStandardConfiguration();
  initOptions ();
    }
   
    public Options (File userConfigFile)
  throws FOPException
    {
  this();
  this.loadUserconfiguration(userConfigFile);
    }
   
    public Options (CommandLineOptions clOptions)
   throws FOPException

    {
  this();
  this.setCommandLineOptions(clOptions);
    }
   
    //initializing option settings 
    void initOptions () {
  if (Configuration.getBooleanValue("quiet").booleanValue()) {
      MessageHandler.setQuiet(true);   
  }
  if (Configuration.getBooleanValue("debugMode").booleanValue()) {
      errorDump = true;
  }
        if (Configuration.getBooleanValue("dumpConfiguration").booleanValue()) {
      Configuration.put("dumpConfiguration","true");     
      Configuration.dumpConfiguration();
  }
    }
 
    //setting clOptions
    void setCommandLineOptions(CommandLineOptions clOptions) {
  //load user configuration file,if there is one
  File userConfigFile = clOptions.getUserConfigFile();
        if (userConfigFile != null) {
            this.loadUserconfiguration(userConfigFile);
        }
       
        //debug mode
  if (clOptions.isDebugMode() != null) {
      errorDump = clOptions.isDebugMode().booleanValue();
      Configuration.put("debugMode",new Boolean(errorDump));
  }
   
  //show configuration settings
  boolean dumpConfiguration;
  if (clOptions.dumpConfiguration() != null) {
      dumpConfiguration = clOptions.dumpConfiguration().booleanValue();
  } else {
      dumpConfiguration = Configuration.getBooleanValue("dumpConfiguration").booleanValue();
  }
        if (dumpConfiguration) {   
      Configuration.put("dumpConfiguration","true");     
      Configuration.dumpConfiguration();
            System.exit(0);
  }
   
  //quiet mode
        if (clOptions.isQuiet() != null) {
            MessageHandler.setQuiet(clOptions.isQuiet().booleanValue());
  }
   
  //set base directory
        String baseDir = Configuration.getStringValue("baseDir");
        if (baseDir == null) {
            try {
                baseDir = new File(clOptions.getInputFile().getAbsolutePath()).getParentFile().toURL().toExternalForm();
                Configuration.put("baseDir", baseDir);
            } catch(Exception e) {
            }
        }
        if (errorDump) {
            MessageHandler.logln("base directory: " + baseDir);
        }
    }

    /**
        *  loads standard configuration file and a user file, if it has been specified
        */
    public void loadStandardConfiguration()
  throws FOPException
    {
        String file = "config.xml";

        // the entry /conf/config.xml refers to a directory conf which is a sibling of org
        InputStream configfile =
      ConfigurationReader.class.getResourceAsStream("/conf/"+
                file);
        if (configfile == null) {
            throw new FOPException("can't find default configuration file");
        }
        if (errorDump) {
            MessageHandler.logln("reading default configuration file");
        }
        ConfigurationReader reader =
      new ConfigurationReader (new InputSource(configfile));
        if (errorDump) {
            reader.setDumpError(true);
        }
  reader.start();
     
    }

    public void loadUserconfiguration(String userConfigFile)
    {
        loadUserconfiguration(new File(userConfigFile));
    }

    public void loadUserconfiguration(File userConfigFile)
    {
        //read user configuration file
        if (userConfigFile != null) {
            MessageHandler.logln("reading user configuration file");
            ConfigurationReader reader = new ConfigurationReader (
                  InputHandler.fileInputSource(userConfigFile));
            if (errorDump) {
                reader.setDumpError(true);
            }
      try {
    reader.start();
            } catch (org.apache.fop.apps.FOPException error) {
                MessageHandler.errorln("Can't find user configuration file " +
               userConfigFile);
                MessageHandler.errorln("using default values");
                if (errorDump) {
                    reader.dumpError(error);
                }
            }
        }
    }
}

TOP

Related Classes of org.apache.fop.apps.Options

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.