
com.sta.cts.ConvRunnerHelper Maven / Gradle / Ivy
package com.sta.cts;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.util.Hashtable;
import org.apache.xalan.xslt.EnvironmentCheck;
import com.sta.mlogger.MLogger;
/**
* Name: ConvRunnerHelper
* Description: Hilfsklasse f?r ConvRunner zur Informations- und Versions-
* Ermittlung.
*
* Comment: Diese Klasse dient ausschlie?lich dazu, zu verhindern, dass beim
* Laden der Klasse ConvRunner auch alle Klassen (und das sind sehr viele)
* geladen werden, die nur im Falle von Informations- bzw. Versions-Ermittlugnen
* ben?tigt werden.
*
* Copyright: Copyright (c) 2014, 2016, 2017-2019, 2021
* Company: >StA-Soft<
* @author StA
* @version 1.0
*/
public final class ConvRunnerHelper
{
/**
* Xalan-Umgebung ermitteln.
* @return Xalan-Umgebung
*/
public static Hashtable getEnvironmentHash()
{
return new EnvironmentCheck().getEnvironmentHash();
}
/**
* Xalan-Umgebung in Print-Writer schreiben.
* @param pw Print-Writer
* @return true: falls erfolgreich, false: falls Problem
*/
public static boolean checkEnvironment(PrintWriter pw)
{
return new EnvironmentCheck().checkEnvironment(pw);
}
/**
* Schl?ssel-Pr?fix f?r Versionsangabe(n) ermitteln.
* @return Schl?ssel-Pr?fix f?r Versionsangabe(n)
*/
public static String getVersionKey()
{
return EnvironmentCheck.VERSION;
}
//===========================================================================
/**
* Pr?fix von Versionsangabe abschneiden.
* @param v Versionsangabe
* @param mask Pr?fix
* @return Versionsangabe ohne Pr?fix
*/
private static String cutVersion(String v, String mask)
{
if (v != null)
{
int i = v.toUpperCase().indexOf(mask.toUpperCase());
if (i >= 0)
{
v = v.substring(i + mask.length()).trim();
while (v.length() > 0)
{
char ch = v.charAt(0);
if ((ch >= '0') && (ch <= '9'))
{
break;
}
v = v.substring(1);
}
}
v = v.replace('_', '.');
}
return v;
}
/**
* Xerces-Version zum Zweck der Ausgabe ermitteln.
* @return Xerces-Version
*/
public static String getXercesVersion()
{
String res = "???";
try
{
Class version;
version = Class.forName("org.apache.xerces.impl.Version");
Method m = version.getMethod("getVersion");
res = (String) m.invoke(null);
res = cutVersion(res, "Xerces-J");
}
catch (Exception ex)
{
MLogger.err("Error(Xerces): " + ex.getClass().getName() + " " + ex.getMessage());
}
return res;
}
/**
* Xalan-Version zum Zweck der Ausgabe ermitteln.
* @return Xalan-Version
*/
public static String getXalanVersion()
{
String res = "???";
try
{
Class version;
version = Class.forName("org.apache.xalan.Version");
Method m = version.getMethod("getVersion");
res = (String) m.invoke(null);
res = cutVersion(res, "Xalan Java");
}
catch (Exception ex)
{
MLogger.err("Error(Xalan): " + ex.getClass().getName() + " " + ex.getMessage());
}
return res;
}
/**
* Batik-Version zum Zweck der Ausgabe ermitteln.
* @return Batik-Version
*/
public static String getBatikVersion()
{
String res = "???";
try
{
Class version;
version = Class.forName("org.apache.batik.Version");
Method m = version.getMethod("getVersion");
res = (String) m.invoke(null);
String prefix = "null; batik-";
if ((res != null) && res.startsWith(prefix))
{
res = res.substring(prefix.length()).replace('_', '.');
}
}
catch (Exception ex)
{
MLogger.err("Error(Batik): " + ex.getClass().getName() + " " + ex.getMessage());
}
return res;
}
/**
* FOP-Version zum Zweck der Ausgabe ermitteln.
* @return FOP-Version
*/
public static String getFOPVersion()
{
String res = "???";
try
{
Class version;
try
{
version = Class.forName("org.apache.fop.Version");
}
catch (Exception ex)
{
Class.forName("org.apache.fop.apps.Options").newInstance();
version = Class.forName("org.apache.fop.apps.Version");
}
Method m = version.getMethod("getVersion");
res = (String) m.invoke(null);
res = cutVersion(res, "FOP");
}
catch (Exception ex)
{
MLogger.err("Error(FOP): " + ex.getClass().getName() + " " + ex.getMessage());
}
return res;
}
//===========================================================================
/**
* Dummy-Constructor.
*/
private ConvRunnerHelper()
{
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy