|
What this is
Other links
The source code
package com.ice.syslogd;
import java.io.*;
import java.lang.*;
import java.text.*;
import java.util.*;
public class
SyslogConfig
{
public static final String RCS_ID = "$Id: SyslogConfig.java,v 1.1.1.1 1998/02/22 05:47:55 time Exp $";
public static final String RCS_REV = "$Revision: 1.1.1.1 $";
public static final String RCS_NAME = "$Name: $";
public static final String DEFAULT_CONFIG_PATH = "syslog.conf";
private String pathName;
private ConfigEntryVector entries;
private Hashtable displays;
private boolean debugDisplays;
public
SyslogConfig()
{
this( SyslogConfig.DEFAULT_CONFIG_PATH );
}
public
SyslogConfig( String pathName )
{
this.pathName = pathName;
this.displays = new Hashtable();
this.entries = new ConfigEntryVector();
this.debugDisplays = false;
}
public void
setConfigPathname( String pathName )
{
this.pathName = pathName;
}
public ConfigEntryVector
getConfigEntries()
{
return this.entries;
}
public void
addConfigEntry( ConfigEntry entry )
{
this.entries.addConfigEntry( entry );
}
public void
addDisplayEntry( DisplayEntry entry )
{
this.displays.put( entry.getName(), entry );
}
public DisplayEntry
getDisplayEntry( String name )
{
DisplayEntry entry = null;
try { entry = (DisplayEntry) this.displays.get( name ); }
catch ( NoSuchElementException ex )
{ entry = null; }
return entry;
}
public Enumeration
getDisplayEnumeration()
{
return this.displays.elements();
}
public boolean
loadConfiguration()
{
return this.loadConfiguration( this.pathName );
}
private boolean
loadConfiguration( String pathName )
{
ConfigEntry entry;
BufferedReader reader;
boolean result = true;
try {
reader = new BufferedReader(
new FileReader( pathName ) );
}
catch ( Exception ex )
{
System.err.println
( "ERROR opening configuration file '"
+ pathName + "'\n\t" + ex.getMessage() );
return false;
}
ConfigFormat parser = ConfigFormat.getInstance();
for ( int lineNumber = 1 ; ; )
{
String configLine = null;
StringBuffer configLineBuf = null;
for ( ; ; )
{
boolean lineContinued = false;
try {
configLine = reader.readLine();
}
catch ( IOException ex )
{
result = false;
configLineBuf = null;
System.err.println
( "ERROR reading configuration line #"
+ lineNumber + ":\n\t" + ex.getMessage() );
break;
}
if ( configLine == null )
break;
++lineNumber;
if ( configLine.endsWith( "\\" ) )
{
lineContinued = true;
configLine =
configLine.substring
( 0, configLine.length()-1 );
}
if ( configLineBuf != null )
configLineBuf.append( configLine );
else
configLineBuf = new StringBuffer( configLine );
if ( ! lineContinued )
break;
}
// Check for end of file (EOF),
if ( configLineBuf == null )
break;
configLine = configLineBuf.toString();
// Skip blank lines.
configLine = configLine.trim();
if ( configLine.length() < 1 )
continue;
// Check for comment.
if ( configLine.startsWith( "#" ) )
{
continue;
}
else if ( configLine.startsWith( "@" ) )
{
// REVIEW We are treating disply entries a little
// different, without its own Format class.
// If we add the ability to re-write the
// config file, we may re-think this!
String[] args =
com.ice.util.StringUtilities.parseArgumentString
( configLine.substring(1) );
if ( args.length < 8 )
{
System.err.println
( "ERROR bad display definition line #"
+ lineNumber + ": wrong number of arguments." );
}
else
{
String name = args[0];
String className = args[1];
String title = args[2];
int x = 20;
int y = 30;
int width = 500;
int height = 300;
int bufLength = 50;
try {
bufLength = Integer.parseInt( args[3] );
x = Integer.parseInt( args[4] );
y = Integer.parseInt( args[5] );
width = Integer.parseInt( args[6] );
height = Integer.parseInt( args[7] );
}
catch ( NumberFormatException ex )
{
System.err.println
( "ERROR bad display geometry line #"
+ lineNumber + ":\n\t" + ex.getMessage() );
}
String[] parameters = null;
if ( args.length > 8 )
{
parameters = new String[ args.length - 8 ];
for ( int i = 8 ; i < args.length ; ++i )
{
parameters[i-8] = args[i];
}
}
DisplayEntry display =
new DisplayEntry
( name, className, title,
bufLength, x, y, width, height,
parameters );
if ( display != null )
{
this.displays.put( name, display );
if ( this.debugDisplays )
System.err.println( "ADDED DISPLAY '" + name + "'" );
}
}
}
else
{
try {
entry = parser.parseEntry( configLine );
}
catch ( ParseException ex )
{
result = false;
System.err.println
( "ERROR bad configuration line #"
+ lineNumber + ":\n\t" + ex.getMessage() );
continue;
}
this.addConfigEntry( entry );
}
}
try { reader.close(); }
catch ( IOException ex ) { }
return result;
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.