git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270715 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -29,71 +29,21 @@ public class FilterSet | |||||
| extends ProjectComponent | extends ProjectComponent | ||||
| implements Cloneable | implements Cloneable | ||||
| { | { | ||||
| /** | /** | ||||
| * The default token start string | * The default token start string | ||||
| */ | */ | ||||
| public final static String DEFAULT_TOKEN_START = "@"; | |||||
| private final static String DEFAULT_TOKEN_START = "@"; | |||||
| /** | /** | ||||
| * The default token end string | * The default token end string | ||||
| */ | */ | ||||
| public final static String DEFAULT_TOKEN_END = "@"; | |||||
| private String m_startOfToken = DEFAULT_TOKEN_START; | |||||
| private String m_endOfToken = DEFAULT_TOKEN_END; | |||||
| private final static String DEFAULT_TOKEN_END = "@"; | |||||
| /** | /** | ||||
| * List of ordered filters and filter files. | * List of ordered filters and filter files. | ||||
| */ | */ | ||||
| private ArrayList m_filters = new ArrayList(); | private ArrayList m_filters = new ArrayList(); | ||||
| public FilterSet() | |||||
| { | |||||
| } | |||||
| /** | |||||
| * Create a Filterset from another filterset | |||||
| * | |||||
| * @param filterset the filterset upon which this filterset will be based. | |||||
| */ | |||||
| protected FilterSet( FilterSet filterset ) | |||||
| throws TaskException | |||||
| { | |||||
| super(); | |||||
| m_filters = (ArrayList)filterset.getFilters().clone(); | |||||
| } | |||||
| /** | |||||
| * The string used to id the beginning of a token. | |||||
| * | |||||
| * @param startOfToken The new Begintoken value | |||||
| */ | |||||
| public void setBeginToken( String startOfToken ) | |||||
| throws TaskException | |||||
| { | |||||
| if( startOfToken == null || "".equals( startOfToken ) ) | |||||
| { | |||||
| throw new TaskException( "beginToken must not be empty" ); | |||||
| } | |||||
| m_startOfToken = startOfToken; | |||||
| } | |||||
| /** | |||||
| * The string used to id the end of a token. | |||||
| * | |||||
| * @param endOfToken The new Endtoken value | |||||
| */ | |||||
| public void setEndToken( String endOfToken ) | |||||
| throws TaskException | |||||
| { | |||||
| if( endOfToken == null || "".equals( endOfToken ) ) | |||||
| { | |||||
| throw new TaskException( "endToken must not be empty" ); | |||||
| } | |||||
| m_endOfToken = endOfToken; | |||||
| } | |||||
| /** | /** | ||||
| * set the file containing the filters for this filterset. | * set the file containing the filters for this filterset. | ||||
| * | * | ||||
| @@ -107,16 +57,6 @@ public class FilterSet | |||||
| readFiltersFromFile( filtersFile ); | readFiltersFromFile( filtersFile ); | ||||
| } | } | ||||
| public String getBeginToken() | |||||
| { | |||||
| return m_startOfToken; | |||||
| } | |||||
| public String getEndToken() | |||||
| { | |||||
| return m_endOfToken; | |||||
| } | |||||
| /** | /** | ||||
| * Gets the filter hash of the FilterSet. | * Gets the filter hash of the FilterSet. | ||||
| * | * | ||||
| @@ -125,11 +65,12 @@ public class FilterSet | |||||
| public Hashtable getFilterHash() | public Hashtable getFilterHash() | ||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| int filterSize = getFilters().size(); | |||||
| Hashtable filterHash = new Hashtable( filterSize ); | |||||
| for( Iterator e = getFilters().iterator(); e.hasNext(); ) | |||||
| final int filterSize = m_filters.size(); | |||||
| final Hashtable filterHash = new Hashtable( filterSize ); | |||||
| final Iterator e = m_filters.iterator(); | |||||
| while( e.hasNext() ) | |||||
| { | { | ||||
| Filter filter = (Filter)e.next(); | |||||
| final Filter filter = (Filter)e.next(); | |||||
| filterHash.put( filter.getToken(), filter.getValue() ); | filterHash.put( filter.getToken(), filter.getValue() ); | ||||
| } | } | ||||
| return filterHash; | return filterHash; | ||||
| @@ -151,7 +92,7 @@ public class FilterSet | |||||
| * @param token The token for the new filter. | * @param token The token for the new filter. | ||||
| * @param value The value for the new filter. | * @param value The value for the new filter. | ||||
| */ | */ | ||||
| public void addFilter( String token, String value ) | |||||
| public void addFilter( final String token, final String value ) | |||||
| { | { | ||||
| m_filters.add( new Filter( token, value ) ); | m_filters.add( new Filter( token, value ) ); | ||||
| } | } | ||||
| @@ -161,9 +102,10 @@ public class FilterSet | |||||
| * | * | ||||
| * @param filterSet the filterset to be added to this filterset | * @param filterSet the filterset to be added to this filterset | ||||
| */ | */ | ||||
| public void addFilterSet( FilterSet filterSet ) | |||||
| public void addFilterSet( final FilterSet filterSet ) | |||||
| { | { | ||||
| for( Iterator e = filterSet.getFilters().iterator(); e.hasNext(); ) | |||||
| final Iterator e = filterSet.m_filters.iterator(); | |||||
| while( e.hasNext() ) | |||||
| { | { | ||||
| m_filters.add( (Filter)e.next() ); | m_filters.add( (Filter)e.next() ); | ||||
| } | } | ||||
| @@ -187,7 +129,7 @@ public class FilterSet | |||||
| public boolean hasFilters() | public boolean hasFilters() | ||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| return getFilters().size() > 0; | |||||
| return m_filters.size() > 0; | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -211,7 +153,7 @@ public class FilterSet | |||||
| props.load( in ); | props.load( in ); | ||||
| Enumeration enum = props.propertyNames(); | Enumeration enum = props.propertyNames(); | ||||
| ArrayList filters = getFilters(); | |||||
| ArrayList filters = m_filters; | |||||
| while( enum.hasMoreElements() ) | while( enum.hasMoreElements() ) | ||||
| { | { | ||||
| String strPropName = (String)enum.nextElement(); | String strPropName = (String)enum.nextElement(); | ||||
| @@ -250,66 +192,56 @@ public class FilterSet | |||||
| * @param line The line to process the tokens in. | * @param line The line to process the tokens in. | ||||
| * @return The string with the tokens replaced. | * @return The string with the tokens replaced. | ||||
| */ | */ | ||||
| public String replaceTokens( String line ) | |||||
| public String replaceTokens( final String line ) | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| String beginToken = getBeginToken(); | |||||
| String endToken = getEndToken(); | |||||
| int index = line.indexOf( beginToken ); | |||||
| int index = line.indexOf( DEFAULT_TOKEN_START ); | |||||
| if( -1 == index ) | |||||
| { | |||||
| return line; | |||||
| } | |||||
| if( index > -1 ) | |||||
| Hashtable tokens = getFilterHash(); | |||||
| try | |||||
| { | { | ||||
| Hashtable tokens = getFilterHash(); | |||||
| try | |||||
| { | |||||
| StringBuffer b = new StringBuffer(); | |||||
| int i = 0; | |||||
| String token = null; | |||||
| String value = null; | |||||
| StringBuffer b = new StringBuffer(); | |||||
| int i = 0; | |||||
| String token = null; | |||||
| String value = null; | |||||
| do | |||||
| do | |||||
| { | |||||
| int endIndex = line.indexOf( DEFAULT_TOKEN_END, index + DEFAULT_TOKEN_START.length() + 1 ); | |||||
| if( endIndex == -1 ) | |||||
| { | { | ||||
| int endIndex = line.indexOf( endToken, index + beginToken.length() + 1 ); | |||||
| if( endIndex == -1 ) | |||||
| { | |||||
| break; | |||||
| } | |||||
| token = line.substring( index + beginToken.length(), endIndex ); | |||||
| b.append( line.substring( i, index ) ); | |||||
| if( tokens.containsKey( token ) ) | |||||
| { | |||||
| value = (String)tokens.get( token ); | |||||
| getLogger().debug( "Replacing: " + beginToken + token + endToken + " -> " + value ); | |||||
| b.append( value ); | |||||
| i = index + beginToken.length() + token.length() + endToken.length(); | |||||
| } | |||||
| else | |||||
| { | |||||
| // just append beginToken and search further | |||||
| b.append( beginToken ); | |||||
| i = index + beginToken.length(); | |||||
| } | |||||
| } while( ( index = line.indexOf( beginToken, i ) ) > -1 ); | |||||
| break; | |||||
| } | |||||
| token = line.substring( index + DEFAULT_TOKEN_START.length(), endIndex ); | |||||
| b.append( line.substring( i, index ) ); | |||||
| if( tokens.containsKey( token ) ) | |||||
| { | |||||
| value = (String)tokens.get( token ); | |||||
| getLogger().debug( "Replacing: " + DEFAULT_TOKEN_START + token + DEFAULT_TOKEN_END + " -> " + value ); | |||||
| b.append( value ); | |||||
| i = index + DEFAULT_TOKEN_START.length() + token.length() + DEFAULT_TOKEN_END.length(); | |||||
| } | |||||
| else | |||||
| { | |||||
| // just append beginToken and search further | |||||
| b.append( DEFAULT_TOKEN_START ); | |||||
| i = index + DEFAULT_TOKEN_START.length(); | |||||
| } | |||||
| } while( ( index = line.indexOf( DEFAULT_TOKEN_START, i ) ) > -1 ); | |||||
| b.append( line.substring( i ) ); | |||||
| return b.toString(); | |||||
| } | |||||
| catch( StringIndexOutOfBoundsException e ) | |||||
| { | |||||
| return line; | |||||
| } | |||||
| b.append( line.substring( i ) ); | |||||
| return b.toString(); | |||||
| } | } | ||||
| else | |||||
| catch( StringIndexOutOfBoundsException e ) | |||||
| { | { | ||||
| return line; | return line; | ||||
| } | } | ||||
| } | } | ||||
| protected ArrayList getFilters() | |||||
| { | |||||
| return m_filters; | |||||
| } | |||||
| /** | /** | ||||
| * The filtersfile nested element. | * The filtersfile nested element. | ||||
| * | * | ||||
| @@ -318,25 +250,17 @@ public class FilterSet | |||||
| */ | */ | ||||
| public class FiltersFile | public class FiltersFile | ||||
| { | { | ||||
| /** | |||||
| * Constructor for the Filter object | |||||
| */ | |||||
| public FiltersFile() | |||||
| { | |||||
| } | |||||
| /** | /** | ||||
| * Sets the file from which filters will be read. | * Sets the file from which filters will be read. | ||||
| * | * | ||||
| * @param file the file from which filters will be read. | * @param file the file from which filters will be read. | ||||
| */ | */ | ||||
| public void setFile( File file ) | |||||
| public void setFile( final File file ) | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| readFiltersFromFile( file ); | readFiltersFromFile( file ); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -29,71 +29,21 @@ public class FilterSet | |||||
| extends ProjectComponent | extends ProjectComponent | ||||
| implements Cloneable | implements Cloneable | ||||
| { | { | ||||
| /** | /** | ||||
| * The default token start string | * The default token start string | ||||
| */ | */ | ||||
| public final static String DEFAULT_TOKEN_START = "@"; | |||||
| private final static String DEFAULT_TOKEN_START = "@"; | |||||
| /** | /** | ||||
| * The default token end string | * The default token end string | ||||
| */ | */ | ||||
| public final static String DEFAULT_TOKEN_END = "@"; | |||||
| private String m_startOfToken = DEFAULT_TOKEN_START; | |||||
| private String m_endOfToken = DEFAULT_TOKEN_END; | |||||
| private final static String DEFAULT_TOKEN_END = "@"; | |||||
| /** | /** | ||||
| * List of ordered filters and filter files. | * List of ordered filters and filter files. | ||||
| */ | */ | ||||
| private ArrayList m_filters = new ArrayList(); | private ArrayList m_filters = new ArrayList(); | ||||
| public FilterSet() | |||||
| { | |||||
| } | |||||
| /** | |||||
| * Create a Filterset from another filterset | |||||
| * | |||||
| * @param filterset the filterset upon which this filterset will be based. | |||||
| */ | |||||
| protected FilterSet( FilterSet filterset ) | |||||
| throws TaskException | |||||
| { | |||||
| super(); | |||||
| m_filters = (ArrayList)filterset.getFilters().clone(); | |||||
| } | |||||
| /** | |||||
| * The string used to id the beginning of a token. | |||||
| * | |||||
| * @param startOfToken The new Begintoken value | |||||
| */ | |||||
| public void setBeginToken( String startOfToken ) | |||||
| throws TaskException | |||||
| { | |||||
| if( startOfToken == null || "".equals( startOfToken ) ) | |||||
| { | |||||
| throw new TaskException( "beginToken must not be empty" ); | |||||
| } | |||||
| m_startOfToken = startOfToken; | |||||
| } | |||||
| /** | |||||
| * The string used to id the end of a token. | |||||
| * | |||||
| * @param endOfToken The new Endtoken value | |||||
| */ | |||||
| public void setEndToken( String endOfToken ) | |||||
| throws TaskException | |||||
| { | |||||
| if( endOfToken == null || "".equals( endOfToken ) ) | |||||
| { | |||||
| throw new TaskException( "endToken must not be empty" ); | |||||
| } | |||||
| m_endOfToken = endOfToken; | |||||
| } | |||||
| /** | /** | ||||
| * set the file containing the filters for this filterset. | * set the file containing the filters for this filterset. | ||||
| * | * | ||||
| @@ -107,16 +57,6 @@ public class FilterSet | |||||
| readFiltersFromFile( filtersFile ); | readFiltersFromFile( filtersFile ); | ||||
| } | } | ||||
| public String getBeginToken() | |||||
| { | |||||
| return m_startOfToken; | |||||
| } | |||||
| public String getEndToken() | |||||
| { | |||||
| return m_endOfToken; | |||||
| } | |||||
| /** | /** | ||||
| * Gets the filter hash of the FilterSet. | * Gets the filter hash of the FilterSet. | ||||
| * | * | ||||
| @@ -125,11 +65,12 @@ public class FilterSet | |||||
| public Hashtable getFilterHash() | public Hashtable getFilterHash() | ||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| int filterSize = getFilters().size(); | |||||
| Hashtable filterHash = new Hashtable( filterSize ); | |||||
| for( Iterator e = getFilters().iterator(); e.hasNext(); ) | |||||
| final int filterSize = m_filters.size(); | |||||
| final Hashtable filterHash = new Hashtable( filterSize ); | |||||
| final Iterator e = m_filters.iterator(); | |||||
| while( e.hasNext() ) | |||||
| { | { | ||||
| Filter filter = (Filter)e.next(); | |||||
| final Filter filter = (Filter)e.next(); | |||||
| filterHash.put( filter.getToken(), filter.getValue() ); | filterHash.put( filter.getToken(), filter.getValue() ); | ||||
| } | } | ||||
| return filterHash; | return filterHash; | ||||
| @@ -151,7 +92,7 @@ public class FilterSet | |||||
| * @param token The token for the new filter. | * @param token The token for the new filter. | ||||
| * @param value The value for the new filter. | * @param value The value for the new filter. | ||||
| */ | */ | ||||
| public void addFilter( String token, String value ) | |||||
| public void addFilter( final String token, final String value ) | |||||
| { | { | ||||
| m_filters.add( new Filter( token, value ) ); | m_filters.add( new Filter( token, value ) ); | ||||
| } | } | ||||
| @@ -161,9 +102,10 @@ public class FilterSet | |||||
| * | * | ||||
| * @param filterSet the filterset to be added to this filterset | * @param filterSet the filterset to be added to this filterset | ||||
| */ | */ | ||||
| public void addFilterSet( FilterSet filterSet ) | |||||
| public void addFilterSet( final FilterSet filterSet ) | |||||
| { | { | ||||
| for( Iterator e = filterSet.getFilters().iterator(); e.hasNext(); ) | |||||
| final Iterator e = filterSet.m_filters.iterator(); | |||||
| while( e.hasNext() ) | |||||
| { | { | ||||
| m_filters.add( (Filter)e.next() ); | m_filters.add( (Filter)e.next() ); | ||||
| } | } | ||||
| @@ -187,7 +129,7 @@ public class FilterSet | |||||
| public boolean hasFilters() | public boolean hasFilters() | ||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| return getFilters().size() > 0; | |||||
| return m_filters.size() > 0; | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -211,7 +153,7 @@ public class FilterSet | |||||
| props.load( in ); | props.load( in ); | ||||
| Enumeration enum = props.propertyNames(); | Enumeration enum = props.propertyNames(); | ||||
| ArrayList filters = getFilters(); | |||||
| ArrayList filters = m_filters; | |||||
| while( enum.hasMoreElements() ) | while( enum.hasMoreElements() ) | ||||
| { | { | ||||
| String strPropName = (String)enum.nextElement(); | String strPropName = (String)enum.nextElement(); | ||||
| @@ -250,66 +192,56 @@ public class FilterSet | |||||
| * @param line The line to process the tokens in. | * @param line The line to process the tokens in. | ||||
| * @return The string with the tokens replaced. | * @return The string with the tokens replaced. | ||||
| */ | */ | ||||
| public String replaceTokens( String line ) | |||||
| public String replaceTokens( final String line ) | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| String beginToken = getBeginToken(); | |||||
| String endToken = getEndToken(); | |||||
| int index = line.indexOf( beginToken ); | |||||
| int index = line.indexOf( DEFAULT_TOKEN_START ); | |||||
| if( -1 == index ) | |||||
| { | |||||
| return line; | |||||
| } | |||||
| if( index > -1 ) | |||||
| Hashtable tokens = getFilterHash(); | |||||
| try | |||||
| { | { | ||||
| Hashtable tokens = getFilterHash(); | |||||
| try | |||||
| { | |||||
| StringBuffer b = new StringBuffer(); | |||||
| int i = 0; | |||||
| String token = null; | |||||
| String value = null; | |||||
| StringBuffer b = new StringBuffer(); | |||||
| int i = 0; | |||||
| String token = null; | |||||
| String value = null; | |||||
| do | |||||
| do | |||||
| { | |||||
| int endIndex = line.indexOf( DEFAULT_TOKEN_END, index + DEFAULT_TOKEN_START.length() + 1 ); | |||||
| if( endIndex == -1 ) | |||||
| { | { | ||||
| int endIndex = line.indexOf( endToken, index + beginToken.length() + 1 ); | |||||
| if( endIndex == -1 ) | |||||
| { | |||||
| break; | |||||
| } | |||||
| token = line.substring( index + beginToken.length(), endIndex ); | |||||
| b.append( line.substring( i, index ) ); | |||||
| if( tokens.containsKey( token ) ) | |||||
| { | |||||
| value = (String)tokens.get( token ); | |||||
| getLogger().debug( "Replacing: " + beginToken + token + endToken + " -> " + value ); | |||||
| b.append( value ); | |||||
| i = index + beginToken.length() + token.length() + endToken.length(); | |||||
| } | |||||
| else | |||||
| { | |||||
| // just append beginToken and search further | |||||
| b.append( beginToken ); | |||||
| i = index + beginToken.length(); | |||||
| } | |||||
| } while( ( index = line.indexOf( beginToken, i ) ) > -1 ); | |||||
| break; | |||||
| } | |||||
| token = line.substring( index + DEFAULT_TOKEN_START.length(), endIndex ); | |||||
| b.append( line.substring( i, index ) ); | |||||
| if( tokens.containsKey( token ) ) | |||||
| { | |||||
| value = (String)tokens.get( token ); | |||||
| getLogger().debug( "Replacing: " + DEFAULT_TOKEN_START + token + DEFAULT_TOKEN_END + " -> " + value ); | |||||
| b.append( value ); | |||||
| i = index + DEFAULT_TOKEN_START.length() + token.length() + DEFAULT_TOKEN_END.length(); | |||||
| } | |||||
| else | |||||
| { | |||||
| // just append beginToken and search further | |||||
| b.append( DEFAULT_TOKEN_START ); | |||||
| i = index + DEFAULT_TOKEN_START.length(); | |||||
| } | |||||
| } while( ( index = line.indexOf( DEFAULT_TOKEN_START, i ) ) > -1 ); | |||||
| b.append( line.substring( i ) ); | |||||
| return b.toString(); | |||||
| } | |||||
| catch( StringIndexOutOfBoundsException e ) | |||||
| { | |||||
| return line; | |||||
| } | |||||
| b.append( line.substring( i ) ); | |||||
| return b.toString(); | |||||
| } | } | ||||
| else | |||||
| catch( StringIndexOutOfBoundsException e ) | |||||
| { | { | ||||
| return line; | return line; | ||||
| } | } | ||||
| } | } | ||||
| protected ArrayList getFilters() | |||||
| { | |||||
| return m_filters; | |||||
| } | |||||
| /** | /** | ||||
| * The filtersfile nested element. | * The filtersfile nested element. | ||||
| * | * | ||||
| @@ -318,25 +250,17 @@ public class FilterSet | |||||
| */ | */ | ||||
| public class FiltersFile | public class FiltersFile | ||||
| { | { | ||||
| /** | |||||
| * Constructor for the Filter object | |||||
| */ | |||||
| public FiltersFile() | |||||
| { | |||||
| } | |||||
| /** | /** | ||||
| * Sets the file from which filters will be read. | * Sets the file from which filters will be read. | ||||
| * | * | ||||
| * @param file the file from which filters will be read. | * @param file the file from which filters will be read. | ||||
| */ | */ | ||||
| public void setFile( File file ) | |||||
| public void setFile( final File file ) | |||||
| throws TaskException | throws TaskException | ||||
| { | { | ||||
| readFiltersFromFile( file ); | readFiltersFromFile( file ); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||