You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by do...@apache.org on 2002/01/06 03:14:32 UTC
cvs commit: jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional Entry.java PropertyFile.java
donaldp 02/01/05 18:14:32
Modified: proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional
PropertyFile.java
Added: proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional
Entry.java
Log:
Move entry to being a top level class and clean up naming conventions
Revision Changes Path
1.10 +19 -507 jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/PropertyFile.java
Index: PropertyFile.java
===================================================================
RCS file: /home/cvs/jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/PropertyFile.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- PropertyFile.java 30 Dec 2001 10:46:58 -0000 1.9
+++ PropertyFile.java 6 Jan 2002 02:14:32 -0000 1.10
@@ -16,19 +16,11 @@
import java.io.OutputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.Properties;
+import org.apache.myrmidon.api.AbstractTask;
import org.apache.myrmidon.api.TaskException;
-import org.apache.tools.ant.Task;
-import org.apache.tools.ant.types.EnumeratedAttribute;
/**
* PropertyFile task uses java.util.Properties to modify integer, String and
@@ -129,43 +121,33 @@
* jem@loftinspace.com.au</a>
*/
public class PropertyFile
- extends Task
+ extends AbstractTask
{
- private ArrayList entries = new ArrayList();
+ private ArrayList m_entries = new ArrayList();
// Use this to prepend a message to the properties file
private String m_comment;
private Properties m_properties;
- private File m_propertyfile;
+ private File m_file;
- public void setComment( String hdr )
+ public void setComment( final String comment )
{
- m_comment = hdr;
+ m_comment = comment;
}
- public void setFile( File file )
+ public void setFile( final File file )
{
- m_propertyfile = file;
+ m_file = file;
}
public Entry createEntry()
{
- Entry e = new Entry();
- entries.add( e );
- return e;
+ final Entry entry = new Entry();
+ m_entries.add( entry );
+ return entry;
}
- /*
- * ========================================================================
- *
- * Constructors
- */
- /*
- * ========================================================================
- *
- * Methods
- */
public void execute()
throws TaskException
{
@@ -191,7 +173,7 @@
private void checkParameters()
throws TaskException
{
- if( !checkParam( m_propertyfile ) )
+ if( !checkParam( m_file ) )
{
throw new TaskException( "file token must not be null." );
}
@@ -200,7 +182,7 @@
private void executeOperation()
throws TaskException
{
- for( Iterator e = entries.iterator(); e.hasNext(); )
+ for( Iterator e = m_entries.iterator(); e.hasNext(); )
{
Entry entry = (Entry)e.next();
entry.executeOn( m_properties );
@@ -214,13 +196,13 @@
m_properties = new Properties();
try
{
- if( m_propertyfile.exists() )
+ if( m_file.exists() )
{
- getLogger().info( "Updating property file: " + m_propertyfile.getAbsolutePath() );
+ getLogger().info( "Updating property file: " + m_file.getAbsolutePath() );
FileInputStream fis = null;
try
{
- fis = new FileInputStream( m_propertyfile );
+ fis = new FileInputStream( m_file );
BufferedInputStream bis = new BufferedInputStream( fis );
m_properties.load( bis );
}
@@ -235,11 +217,11 @@
else
{
getLogger().info( "Creating new property file: " +
- m_propertyfile.getAbsolutePath() );
+ m_file.getAbsolutePath() );
FileOutputStream out = null;
try
{
- out = new FileOutputStream( m_propertyfile.getAbsolutePath() );
+ out = new FileOutputStream( m_file.getAbsolutePath() );
out.flush();
}
finally
@@ -263,7 +245,7 @@
BufferedOutputStream bos = null;
try
{
- bos = new BufferedOutputStream( new FileOutputStream( m_propertyfile ) );
+ bos = new BufferedOutputStream( new FileOutputStream( m_file ) );
// Properties.store is not available in JDK 1.1
Method m =
@@ -304,476 +286,6 @@
catch( IOException ioex )
{
}
- }
- }
- }
-
- /**
- * Instance of this class represents nested elements of a task propertyfile.
- *
- * @author RT
- */
- public static class Entry
- {
-
- final static String NOW_VALUE_ = "now";
- final static String NULL_VALUE_ = "never";
-
- private final static int DEFAULT_INT_VALUE = 1;
- private final static GregorianCalendar
- DEFAULT_DATE_VALUE = new GregorianCalendar();
-
- private String m_key = null;
- private int m_type = Type.STRING_TYPE;
- private int m_operation = Operation.EQUALS_OPER;
- private String m_value = "";
- private String m_default = null;
- private String m_pattern = null;
-
- public void setDefault( String value )
- {
- this.m_default = value;
- }
-
- public void setKey( String value )
- {
- this.m_key = value;
- }
-
- public void setOperation( Operation value )
- {
- int newOperation = Operation.toOperation( value.getValue() );
- if( newOperation == Operation.NOW_VALUE )
- {
- this.m_operation = Operation.EQUALS_OPER;
- this.setValue( this.NOW_VALUE_ );
- }
- else if( newOperation == Operation.NULL_VALUE )
- {
- this.m_operation = Operation.EQUALS_OPER;
- this.setValue( this.NULL_VALUE_ );
- }
- else
- {
- this.m_operation = newOperation;
- }
- }
-
- public void setPattern( String value )
- {
- this.m_pattern = value;
- }
-
- public void setType( Type value )
- {
- this.m_type = Type.toType( value.getValue() );
- }
-
- public void setValue( String value )
- {
- this.m_value = value;
- }
-
- protected void executeOn( Properties props )
- throws TaskException
- {
- checkParameters();
-
- // m_type may be null because it wasn't set
- try
- {
- if( m_type == Type.INTEGER_TYPE )
- {
- executeInteger( (String)props.get( m_key ) );
- }
- else if( m_type == Type.DATE_TYPE )
- {
- executeDate( (String)props.get( m_key ) );
- }
- else if( m_type == Type.STRING_TYPE )
- {
- executeString( (String)props.get( m_key ) );
- }
- else
- {
- throw new TaskException( "Unknown operation type: " + m_type + "" );
- }
- }
- catch( NullPointerException npe )
- {
- // Default to string type
- // which means do nothing
- npe.printStackTrace();
- }
- // Insert as a string by default
- props.put( m_key, m_value );
-
- }
-
- /**
- * Check if parameter combinations can be supported
- *
- * @exception TaskException Description of Exception
- */
- private void checkParameters()
- throws TaskException
- {
- if( m_type == Type.STRING_TYPE &&
- m_operation == Operation.DECREMENT_OPER )
- {
- throw new TaskException( "- is not suported for string properties (key:" + m_key + ")" );
- }
- if( m_value == null && m_default == null )
- {
- throw new TaskException( "value and/or default must be specified (key:" + m_key + ")" );
- }
- if( m_key == null )
- {
- throw new TaskException( "key is mandatory" );
- }
- if( m_type == Type.STRING_TYPE &&
- m_pattern != null )
- {
- throw new TaskException( "pattern is not suported for string properties (key:" + m_key + ")" );
- }
- }
-
- /**
- * Handle operations for type <code>date</code>.
- *
- * @param oldValue the current value read from the property file or
- * <code>null</code> if the <code>key</code> was not contained in
- * the property file.
- * @exception TaskException Description of Exception
- */
- private void executeDate( String oldValue )
- throws TaskException
- {
- GregorianCalendar value = new GregorianCalendar();
- GregorianCalendar newValue = new GregorianCalendar();
-
- if( m_pattern == null )
- m_pattern = "yyyy/MM/dd HH:mm";
- DateFormat fmt = new SimpleDateFormat( m_pattern );
-
- // special case
- if( m_default != null &&
- NOW_VALUE_.equals( m_default.toLowerCase() ) &&
- ( m_operation == Operation.INCREMENT_OPER ||
- m_operation == Operation.DECREMENT_OPER ) )
- {
- oldValue = null;
- }
-
- if( oldValue != null )
- {
- try
- {
- value.setTime( fmt.parse( oldValue ) );
- }
- catch( ParseException pe )
- {
- /*
- * swollow
- */
- }
- }
-
- if( m_value != null )
- {
- if( NOW_VALUE_.equals( m_value.toLowerCase() ) )
- {
- value.setTime( new Date() );
- }
- else if( NULL_VALUE_.equals( m_value.toLowerCase() ) )
- {
- value = null;
- }
- else
- {
- try
- {
- value.setTime( fmt.parse( m_value ) );
- }
- catch( Exception ex )
- {
- // obviously not a date, try a simple int
- try
- {
- int offset = Integer.parseInt( m_value );
- value.clear();
- value.set( Calendar.DAY_OF_YEAR, offset );
- }
- catch( Exception ex_ )
- {
- value.clear();
- value.set( Calendar.DAY_OF_YEAR, 1 );
- }
- }
-
- }
- }
-
- if( m_default != null && oldValue == null )
- {
- if( NOW_VALUE_.equals( m_default.toLowerCase() ) )
- {
- value.setTime( new Date() );
- }
- else if( NULL_VALUE_.equals( m_default.toLowerCase() ) )
- {
- value = null;
- }
- else
- {
- try
- {
- value.setTime( fmt.parse( m_default ) );
- }
- catch( ParseException pe )
- {
- /*
- * swollow
- */
- }
- }
- }
-
- if( m_operation == Operation.EQUALS_OPER )
- {
- newValue = value;
- }
- else if( m_operation == Operation.INCREMENT_OPER )
- {
- newValue.add( Calendar.SECOND, value.get( Calendar.SECOND ) );
- newValue.add( Calendar.MINUTE, value.get( Calendar.MINUTE ) );
- newValue.add( Calendar.HOUR_OF_DAY, value.get( Calendar.HOUR_OF_DAY ) );
- newValue.add( Calendar.DAY_OF_YEAR, value.get( Calendar.DAY_OF_YEAR ) );
- }
- else if( m_operation == Operation.DECREMENT_OPER )
- {
- newValue.add( Calendar.SECOND, -1 * value.get( Calendar.SECOND ) );
- newValue.add( Calendar.MINUTE, -1 * value.get( Calendar.MINUTE ) );
- newValue.add( Calendar.HOUR_OF_DAY, -1 * value.get( Calendar.HOUR_OF_DAY ) );
- newValue.add( Calendar.DAY_OF_YEAR, -1 * value.get( Calendar.DAY_OF_YEAR ) );
- }
- if( newValue != null )
- {
- m_value = fmt.format( newValue.getTime() );
- }
- else
- {
- m_value = "";
- }
- }
-
- /**
- * Handle operations for type <code>int</code>.
- *
- * @param oldValue the current value read from the property file or
- * <code>null</code> if the <code>key</code> was not contained in
- * the property file.
- * @exception TaskException Description of Exception
- */
- private void executeInteger( String oldValue )
- throws TaskException
- {
- int value = 0;
- int newValue = 0;
-
- DecimalFormat fmt = ( m_pattern != null ) ? new DecimalFormat( m_pattern )
- : new DecimalFormat();
-
- if( oldValue != null )
- {
- try
- {
- value = fmt.parse( oldValue ).intValue();
- }
- catch( NumberFormatException nfe )
- {
- /*
- * swollow
- */
- }
- catch( ParseException pe )
- {
- /*
- * swollow
- */
- }
- }
- if( m_value != null )
- {
- try
- {
- value = fmt.parse( m_value ).intValue();
- }
- catch( NumberFormatException nfe )
- {
- /*
- * swollow
- */
- }
- catch( ParseException pe )
- {
- /*
- * swollow
- */
- }
- }
- if( m_default != null && oldValue == null )
- {
- try
- {
- value = fmt.parse( m_default ).intValue();
- }
- catch( NumberFormatException nfe )
- {
- /*
- * swollow
- */
- }
- catch( ParseException pe )
- {
- /*
- * swollow
- */
- }
- }
-
- if( m_operation == Operation.EQUALS_OPER )
- {
- newValue = value;
- }
- else if( m_operation == Operation.INCREMENT_OPER )
- {
- newValue = ++value;
- }
- else if( m_operation == Operation.DECREMENT_OPER )
- {
- newValue = --value;
- }
- m_value = fmt.format( newValue );
- }
-
- /**
- * Handle operations for type <code>string</code>.
- *
- * @param oldValue the current value read from the property file or
- * <code>null</code> if the <code>key</code> was not contained in
- * the property file.
- * @exception TaskException Description of Exception
- */
- private void executeString( String oldValue )
- throws TaskException
- {
- String value = "";
- String newValue = "";
-
- // the order of events is, of course, very important here
- // default initially to the old value
- if( oldValue != null )
- {
- value = oldValue;
- }
- // but if a value is specified, use it
- if( m_value != null )
- {
- value = m_value;
- }
- // even if value is specified, ignore it and set to the default
- // value if it is specified and there is no previous value
- if( m_default != null && oldValue == null )
- {
- value = m_default;
- }
-
- if( m_operation == Operation.EQUALS_OPER )
- {
- newValue = value;
- }
- else if( m_operation == Operation.INCREMENT_OPER )
- {
- newValue += value;
- }
- m_value = newValue;
- }
-
- /**
- * Enumerated attribute with the values "+", "-", "=", "now" and
- * "never".
- *
- * @author RT
- */
- public static class Operation extends EnumeratedAttribute
- {
-
- // Property type operations
- public final static int INCREMENT_OPER = 0;
- public final static int DECREMENT_OPER = 1;
- public final static int EQUALS_OPER = 2;
-
- // Special values
- public final static int NOW_VALUE = 3;
- public final static int NULL_VALUE = 4;
-
- public static int toOperation( String oper )
- {
- if( "+".equals( oper ) )
- {
- return INCREMENT_OPER;
- }
- else if( "-".equals( oper ) )
- {
- return DECREMENT_OPER;
- }
- else if( NOW_VALUE_.equals( oper ) )
- {
- return NOW_VALUE;
- }
- else if( NULL_VALUE_.equals( oper ) )
- {
- return NULL_VALUE;
- }
- return EQUALS_OPER;
- }
-
- public String[] getValues()
- {
- return new String[]{"+", "-", "=", NOW_VALUE_, NULL_VALUE_};
- }
- }
-
- /**
- * Enumerated attribute with the values "int", "date" and "string".
- *
- * @author RT
- */
- public static class Type extends EnumeratedAttribute
- {
-
- // Property types
- public final static int INTEGER_TYPE = 0;
- public final static int DATE_TYPE = 1;
- public final static int STRING_TYPE = 2;
-
- public static int toType( String type )
- {
- if( "int".equals( type ) )
- {
- return INTEGER_TYPE;
- }
- else if( "date".equals( type ) )
- {
- return DATE_TYPE;
- }
- return STRING_TYPE;
- }
-
- public String[] getValues()
- {
- return new String[]{"int", "date", "string"};
}
}
}
1.1 jakarta-ant/proposal/myrmidon/src/main/org/apache/tools/ant/taskdefs/optional/Entry.java
Index: Entry.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE.txt file.
*/
package org.apache.tools.ant.taskdefs.optional;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Properties;
import org.apache.myrmidon.api.TaskException;
import org.apache.tools.ant.types.EnumeratedAttribute;
/**
* Instance of this class represents nested elements of a task propertyfile.
*/
public class Entry
{
final static String NOW_VALUE_ = "now";
final static String NULL_VALUE_ = "never";
private final static int DEFAULT_INT_VALUE = 1;
private final static GregorianCalendar
DEFAULT_DATE_VALUE = new GregorianCalendar();
private String m_key;
private int m_type = Type.STRING_TYPE;
private int m_operation = Operation.EQUALS_OPER;
private String m_value = "";
private String m_default;
private String m_pattern;
public void setDefault( String value )
{
this.m_default = value;
}
public void setKey( String value )
{
this.m_key = value;
}
public void setOperation( Operation value )
{
int newOperation = Operation.toOperation( value.getValue() );
if( newOperation == Operation.NOW_VALUE )
{
this.m_operation = Operation.EQUALS_OPER;
this.setValue( this.NOW_VALUE_ );
}
else if( newOperation == Operation.NULL_VALUE )
{
this.m_operation = Operation.EQUALS_OPER;
this.setValue( this.NULL_VALUE_ );
}
else
{
this.m_operation = newOperation;
}
}
public void setPattern( String value )
{
this.m_pattern = value;
}
public void setType( Type value )
{
this.m_type = Type.toType( value.getValue() );
}
public void setValue( String value )
{
this.m_value = value;
}
protected void executeOn( Properties props )
throws TaskException
{
checkParameters();
// m_type may be null because it wasn't set
try
{
if( m_type == Type.INTEGER_TYPE )
{
executeInteger( (String)props.get( m_key ) );
}
else if( m_type == Type.DATE_TYPE )
{
executeDate( (String)props.get( m_key ) );
}
else if( m_type == Type.STRING_TYPE )
{
executeString( (String)props.get( m_key ) );
}
else
{
throw new TaskException( "Unknown operation type: " + m_type + "" );
}
}
catch( NullPointerException npe )
{
// Default to string type
// which means do nothing
npe.printStackTrace();
}
// Insert as a string by default
props.put( m_key, m_value );
}
/**
* Check if parameter combinations can be supported
*
* @exception TaskException Description of Exception
*/
private void checkParameters()
throws TaskException
{
if( m_type == Type.STRING_TYPE &&
m_operation == Operation.DECREMENT_OPER )
{
throw new TaskException( "- is not suported for string properties (key:" + m_key + ")" );
}
if( m_value == null && m_default == null )
{
throw new TaskException( "value and/or default must be specified (key:" + m_key + ")" );
}
if( m_key == null )
{
throw new TaskException( "key is mandatory" );
}
if( m_type == Type.STRING_TYPE &&
m_pattern != null )
{
throw new TaskException( "pattern is not suported for string properties (key:" + m_key + ")" );
}
}
/**
* Handle operations for type <code>date</code>.
*
* @param oldValue the current value read from the property file or
* <code>null</code> if the <code>key</code> was not contained in
* the property file.
* @exception TaskException Description of Exception
*/
private void executeDate( String oldValue )
throws TaskException
{
GregorianCalendar value = new GregorianCalendar();
GregorianCalendar newValue = new GregorianCalendar();
if( m_pattern == null )
m_pattern = "yyyy/MM/dd HH:mm";
DateFormat fmt = new SimpleDateFormat( m_pattern );
// special case
if( m_default != null &&
NOW_VALUE_.equals( m_default.toLowerCase() ) &&
( m_operation == Operation.INCREMENT_OPER ||
m_operation == Operation.DECREMENT_OPER ) )
{
oldValue = null;
}
if( oldValue != null )
{
try
{
value.setTime( fmt.parse( oldValue ) );
}
catch( ParseException pe )
{
/*
* swollow
*/
}
}
if( m_value != null )
{
if( NOW_VALUE_.equals( m_value.toLowerCase() ) )
{
value.setTime( new Date() );
}
else if( NULL_VALUE_.equals( m_value.toLowerCase() ) )
{
value = null;
}
else
{
try
{
value.setTime( fmt.parse( m_value ) );
}
catch( Exception ex )
{
// obviously not a date, try a simple int
try
{
int offset = Integer.parseInt( m_value );
value.clear();
value.set( Calendar.DAY_OF_YEAR, offset );
}
catch( Exception ex_ )
{
value.clear();
value.set( Calendar.DAY_OF_YEAR, 1 );
}
}
}
}
if( m_default != null && oldValue == null )
{
if( NOW_VALUE_.equals( m_default.toLowerCase() ) )
{
value.setTime( new Date() );
}
else if( NULL_VALUE_.equals( m_default.toLowerCase() ) )
{
value = null;
}
else
{
try
{
value.setTime( fmt.parse( m_default ) );
}
catch( ParseException pe )
{
/*
* swollow
*/
}
}
}
if( m_operation == Operation.EQUALS_OPER )
{
newValue = value;
}
else if( m_operation == Operation.INCREMENT_OPER )
{
newValue.add( Calendar.SECOND, value.get( Calendar.SECOND ) );
newValue.add( Calendar.MINUTE, value.get( Calendar.MINUTE ) );
newValue.add( Calendar.HOUR_OF_DAY, value.get( Calendar.HOUR_OF_DAY ) );
newValue.add( Calendar.DAY_OF_YEAR, value.get( Calendar.DAY_OF_YEAR ) );
}
else if( m_operation == Operation.DECREMENT_OPER )
{
newValue.add( Calendar.SECOND, -1 * value.get( Calendar.SECOND ) );
newValue.add( Calendar.MINUTE, -1 * value.get( Calendar.MINUTE ) );
newValue.add( Calendar.HOUR_OF_DAY, -1 * value.get( Calendar.HOUR_OF_DAY ) );
newValue.add( Calendar.DAY_OF_YEAR, -1 * value.get( Calendar.DAY_OF_YEAR ) );
}
if( newValue != null )
{
m_value = fmt.format( newValue.getTime() );
}
else
{
m_value = "";
}
}
/**
* Handle operations for type <code>int</code>.
*
* @param oldValue the current value read from the property file or
* <code>null</code> if the <code>key</code> was not contained in
* the property file.
* @exception TaskException Description of Exception
*/
private void executeInteger( String oldValue )
throws TaskException
{
int value = 0;
int newValue = 0;
DecimalFormat fmt = ( m_pattern != null ) ? new DecimalFormat( m_pattern )
: new DecimalFormat();
if( oldValue != null )
{
try
{
value = fmt.parse( oldValue ).intValue();
}
catch( NumberFormatException nfe )
{
/*
* swollow
*/
}
catch( ParseException pe )
{
/*
* swollow
*/
}
}
if( m_value != null )
{
try
{
value = fmt.parse( m_value ).intValue();
}
catch( NumberFormatException nfe )
{
/*
* swollow
*/
}
catch( ParseException pe )
{
/*
* swollow
*/
}
}
if( m_default != null && oldValue == null )
{
try
{
value = fmt.parse( m_default ).intValue();
}
catch( NumberFormatException nfe )
{
/*
* swollow
*/
}
catch( ParseException pe )
{
/*
* swollow
*/
}
}
if( m_operation == Operation.EQUALS_OPER )
{
newValue = value;
}
else if( m_operation == Operation.INCREMENT_OPER )
{
newValue = ++value;
}
else if( m_operation == Operation.DECREMENT_OPER )
{
newValue = --value;
}
m_value = fmt.format( newValue );
}
/**
* Handle operations for type <code>string</code>.
*
* @param oldValue the current value read from the property file or
* <code>null</code> if the <code>key</code> was not contained in
* the property file.
* @exception TaskException Description of Exception
*/
private void executeString( String oldValue )
throws TaskException
{
String value = "";
String newValue = "";
// the order of events is, of course, very important here
// default initially to the old value
if( oldValue != null )
{
value = oldValue;
}
// but if a value is specified, use it
if( m_value != null )
{
value = m_value;
}
// even if value is specified, ignore it and set to the default
// value if it is specified and there is no previous value
if( m_default != null && oldValue == null )
{
value = m_default;
}
if( m_operation == Operation.EQUALS_OPER )
{
newValue = value;
}
else if( m_operation == Operation.INCREMENT_OPER )
{
newValue += value;
}
m_value = newValue;
}
/**
* Enumerated attribute with the values "+", "-", "=", "now" and
* "never".
*
* @author RT
*/
public static class Operation extends EnumeratedAttribute
{
// Property type operations
public final static int INCREMENT_OPER = 0;
public final static int DECREMENT_OPER = 1;
public final static int EQUALS_OPER = 2;
// Special values
public final static int NOW_VALUE = 3;
public final static int NULL_VALUE = 4;
public static int toOperation( String oper )
{
if( "+".equals( oper ) )
{
return INCREMENT_OPER;
}
else if( "-".equals( oper ) )
{
return DECREMENT_OPER;
}
else if( NOW_VALUE_.equals( oper ) )
{
return NOW_VALUE;
}
else if( NULL_VALUE_.equals( oper ) )
{
return NULL_VALUE;
}
return EQUALS_OPER;
}
public String[] getValues()
{
return new String[]{"+", "-", "=", NOW_VALUE_, NULL_VALUE_};
}
}
/**
* Enumerated attribute with the values "int", "date" and "string".
*
* @author RT
*/
public static class Type extends EnumeratedAttribute
{
// Property types
public final static int INTEGER_TYPE = 0;
public final static int DATE_TYPE = 1;
public final static int STRING_TYPE = 2;
public static int toType( String type )
{
if( "int".equals( type ) )
{
return INTEGER_TYPE;
}
else if( "date".equals( type ) )
{
return DATE_TYPE;
}
return STRING_TYPE;
}
public String[] getValues()
{
return new String[]{"int", "date", "string"};
}
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>