Browse Source

Remove unused class

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270529 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Donald 23 years ago
parent
commit
ddf1b613cf
2 changed files with 0 additions and 408 deletions
  1. +0
    -204
      proposal/myrmidon/src/main/org/apache/tools/ant/types/optional/depend/DependScanner.java
  2. +0
    -204
      proposal/myrmidon/src/todo/org/apache/tools/ant/types/optional/depend/DependScanner.java

+ 0
- 204
proposal/myrmidon/src/main/org/apache/tools/ant/types/optional/depend/DependScanner.java View File

@@ -1,204 +0,0 @@
/*
* 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.types.optional.depend;

import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.apache.bcel.*;
import org.apache.bcel.classfile.*;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.util.depend.Dependencies;
import org.apache.tools.ant.util.depend.Filter;

/**
* An interface used to describe the actions required by any type of directory
* scanner.
*/
public class DependScanner
extends DirectoryScanner
{
List included = new LinkedList();
File baseClass;
File basedir;

private List rootClasses;

/**
* Sets the basedir for scanning. This is the directory that is scanned
* recursively.
*
* @param basedir the (non-null) basedir for scanning
*/
public void setBasedir( String basedir )
{
setBasedir( new File( basedir.replace( '/', File.separatorChar ).replace( '\\', File.separatorChar ) ) );
}

/**
* Sets the basedir for scanning. This is the directory that is scanned
* recursively.
*
* @param basedir the basedir for scanning
*/
public void setBasedir( File basedir )
{
this.basedir = basedir;
}

public void setCaseSensitive( boolean isCaseSensitive )
{
}

public void setExcludes( String[] excludes )
{
}

public void setIncludes( String[] includes )
{
}

/**
* Sets the domain, where dependant classes are searched
*
* @param rootClasses The new RootClasses value
*/
public void setRootClasses( List rootClasses )
{
this.rootClasses = rootClasses;
}

/**
* Gets the basedir that is used for scanning.
*
* @return the basedir that is used for scanning
*/
public File getBasedir()
{
return basedir;
}

public String[] getExcludedDirectories()
{
return null;
}

public String[] getExcludedFiles()
{
return null;
}

public String[] getIncludedDirectories()
{
return new String[ 0 ];
}

/**
* Get the names of the class files, baseClass depends on
*
* @return the names of the files
*/
public String[] getIncludedFiles()
{
int count = included.size();
String[] files = new String[ count ];
for( int i = 0; i < count; i++ )
{
files[ i ] = included.get( i ) + ".class";
//System.err.println(" " + files[i]);
}
return files;
}

public String[] getNotIncludedDirectories()
{
return null;
}

public String[] getNotIncludedFiles()
{
return null;
}

public void addDefaultExcludes()
{
}

/**
* Scans the base directory for files that baseClass depends on
*
*/
public void scan()
{
Dependencies visitor = new Dependencies();

Set set = new TreeSet();

final String base;
try
{
base = basedir.getCanonicalPath() + File.separator;
}
catch( Exception e )
{
throw new IllegalArgumentException( e.getMessage() );
}

for( Iterator rootClassIterator = rootClasses.iterator(); rootClassIterator.hasNext(); )
{
Set newSet = new HashSet();
String start = (String)rootClassIterator.next();
start = start.replace( '.', '/' );

newSet.add( start );
set.add( start );

do
{
Iterator i = newSet.iterator();
while( i.hasNext() )
{
String fileName = base + ( (String)i.next() ).replace( '/', File.separatorChar ) + ".class";

try
{
JavaClass javaClass = new ClassParser( fileName ).parse();
javaClass.accept( visitor );
}
catch( IOException e )
{
System.err.println( "exception: " + e.getMessage() );
}
}
newSet.clear();
newSet.addAll( visitor.getDependencies() );
visitor.clearDependencies();

Dependencies.applyFilter( newSet,
new Filter()
{
public boolean accept( Object object )
{
String fileName = base + ( (String)object ).replace( '/', File.separatorChar ) + ".class";
return new File( fileName ).exists();
}
} );
newSet.removeAll( set );
set.addAll( newSet );
} while( newSet.size() > 0 );
}

included.clear();
included.addAll( set );
}
}

+ 0
- 204
proposal/myrmidon/src/todo/org/apache/tools/ant/types/optional/depend/DependScanner.java View File

@@ -1,204 +0,0 @@
/*
* 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.types.optional.depend;

import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import org.apache.bcel.*;
import org.apache.bcel.classfile.*;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.util.depend.Dependencies;
import org.apache.tools.ant.util.depend.Filter;

/**
* An interface used to describe the actions required by any type of directory
* scanner.
*/
public class DependScanner
extends DirectoryScanner
{
List included = new LinkedList();
File baseClass;
File basedir;

private List rootClasses;

/**
* Sets the basedir for scanning. This is the directory that is scanned
* recursively.
*
* @param basedir the (non-null) basedir for scanning
*/
public void setBasedir( String basedir )
{
setBasedir( new File( basedir.replace( '/', File.separatorChar ).replace( '\\', File.separatorChar ) ) );
}

/**
* Sets the basedir for scanning. This is the directory that is scanned
* recursively.
*
* @param basedir the basedir for scanning
*/
public void setBasedir( File basedir )
{
this.basedir = basedir;
}

public void setCaseSensitive( boolean isCaseSensitive )
{
}

public void setExcludes( String[] excludes )
{
}

public void setIncludes( String[] includes )
{
}

/**
* Sets the domain, where dependant classes are searched
*
* @param rootClasses The new RootClasses value
*/
public void setRootClasses( List rootClasses )
{
this.rootClasses = rootClasses;
}

/**
* Gets the basedir that is used for scanning.
*
* @return the basedir that is used for scanning
*/
public File getBasedir()
{
return basedir;
}

public String[] getExcludedDirectories()
{
return null;
}

public String[] getExcludedFiles()
{
return null;
}

public String[] getIncludedDirectories()
{
return new String[ 0 ];
}

/**
* Get the names of the class files, baseClass depends on
*
* @return the names of the files
*/
public String[] getIncludedFiles()
{
int count = included.size();
String[] files = new String[ count ];
for( int i = 0; i < count; i++ )
{
files[ i ] = included.get( i ) + ".class";
//System.err.println(" " + files[i]);
}
return files;
}

public String[] getNotIncludedDirectories()
{
return null;
}

public String[] getNotIncludedFiles()
{
return null;
}

public void addDefaultExcludes()
{
}

/**
* Scans the base directory for files that baseClass depends on
*
*/
public void scan()
{
Dependencies visitor = new Dependencies();

Set set = new TreeSet();

final String base;
try
{
base = basedir.getCanonicalPath() + File.separator;
}
catch( Exception e )
{
throw new IllegalArgumentException( e.getMessage() );
}

for( Iterator rootClassIterator = rootClasses.iterator(); rootClassIterator.hasNext(); )
{
Set newSet = new HashSet();
String start = (String)rootClassIterator.next();
start = start.replace( '.', '/' );

newSet.add( start );
set.add( start );

do
{
Iterator i = newSet.iterator();
while( i.hasNext() )
{
String fileName = base + ( (String)i.next() ).replace( '/', File.separatorChar ) + ".class";

try
{
JavaClass javaClass = new ClassParser( fileName ).parse();
javaClass.accept( visitor );
}
catch( IOException e )
{
System.err.println( "exception: " + e.getMessage() );
}
}
newSet.clear();
newSet.addAll( visitor.getDependencies() );
visitor.clearDependencies();

Dependencies.applyFilter( newSet,
new Filter()
{
public boolean accept( Object object )
{
String fileName = base + ( (String)object ).replace( '/', File.separatorChar ) + ".class";
return new File( fileName ).exists();
}
} );
newSet.removeAll( set );
set.addAll( newSet );
} while( newSet.size() > 0 );
}

included.clear();
included.addAll( set );
}
}

Loading…
Cancel
Save