|
From: David C. <dc...@us...> - 2005-11-20 16:39:51
|
Update of /cvsroot/rubyeclipse/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/symbols In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2802/src/org/rubypeople/rdt/internal/ui/symbols Modified Files: BlockingSymbolFinder.java Log Message: Added Unit test for BlockingSymbolFinder Index: BlockingSymbolFinder.java =================================================================== RCS file: /cvsroot/rubyeclipse/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/symbols/BlockingSymbolFinder.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** BlockingSymbolFinder.java 20 Nov 2005 02:23:07 -0000 1.1 --- BlockingSymbolFinder.java 20 Nov 2005 16:39:39 -0000 1.2 *************** *** 12,33 **** import org.rubypeople.rdt.internal.core.symbols.Symbol; import org.rubypeople.rdt.internal.core.symbols.SymbolSchedulingRule; - // DSC UNIT TEST public class BlockingSymbolFinder implements ISymbolFinder { private final ISymbolFinder delegate; ! public BlockingSymbolFinder(ISymbolFinder symbolFinder) { this.delegate = symbolFinder; } public Set find(final Symbol symbol) { FindSymbolJob job = new FindExactSymbolJob(delegate, symbol); ! return job.executeJob(); } public Set find(String regExp, int symbolType) throws PatternSyntaxException { ! FindSymbolJob job = new FindInexactSymbolJob("find " + regExp, delegate, regExp, symbolType); ! return job.executeJob(); } --- 12,35 ---- import org.rubypeople.rdt.internal.core.symbols.Symbol; import org.rubypeople.rdt.internal.core.symbols.SymbolSchedulingRule; + import org.rubypeople.rdt.internal.core.util.IJobScheduler; public class BlockingSymbolFinder implements ISymbolFinder { private final ISymbolFinder delegate; + private final IJobScheduler scheduler; ! public BlockingSymbolFinder(ISymbolFinder symbolFinder, IJobScheduler scheduler) { this.delegate = symbolFinder; + this.scheduler = scheduler; } public Set find(final Symbol symbol) { FindSymbolJob job = new FindExactSymbolJob(delegate, symbol); ! return job.executeJob(scheduler); } public Set find(String regExp, int symbolType) throws PatternSyntaxException { ! FindSymbolJob job = new FindInexactSymbolJob( delegate, regExp, symbolType); ! return job.executeJob(scheduler); } *************** *** 46,59 **** protected abstract Set find() throws PatternSyntaxException; ! private Set executeJob() { ! schedule(); ! try { ! join(); } catch (InterruptedException e) { ! e.printStackTrace(); ! } ! if (exception != null) ! throw exception; return locations; } --- 48,58 ---- protected abstract Set find() throws PatternSyntaxException; ! private Set executeJob(IJobScheduler scheduler) { try { ! scheduler.execute(this); ! if (exception != null) ! throw exception; } catch (InterruptedException e) { ! }; return locations; } *************** *** 67,81 **** return Status.OK_STATUS; } } ! private static class FindInexactSymbolJob extends FindSymbolJob { private final ISymbolFinder delegate; private final String regExp; private final int symbolType; ! private FindInexactSymbolJob(String name, ISymbolFinder delegate, String regExp, int symbolType) { ! super(name); this.delegate = delegate; this.regExp = regExp; --- 66,87 ---- return Status.OK_STATUS; } + + protected boolean propertiesEquals(Job that) { + return getRule().equals(that.getRule()) + && isSystem()== that.isSystem() + && isUser() == that.isUser() + && getPriority() == that.getPriority(); + } } ! public static class FindInexactSymbolJob extends FindSymbolJob { private final ISymbolFinder delegate; private final String regExp; private final int symbolType; ! public FindInexactSymbolJob(ISymbolFinder delegate, String regExp, int symbolType) { ! super("find " + regExp); this.delegate = delegate; this.regExp = regExp; *************** *** 86,98 **** return delegate.find(regExp, symbolType); } } ! private static class FindExactSymbolJob extends FindSymbolJob { private final ISymbolFinder delegate; private final Symbol symbol; ! private FindExactSymbolJob(ISymbolFinder delegate, Symbol symbol) { super("find "+symbol); this.delegate = delegate; --- 92,119 ---- return delegate.find(regExp, symbolType); } + + public boolean equals(Object obj) { + if (!(obj instanceof FindInexactSymbolJob)) + return false; + + FindInexactSymbolJob that = (FindInexactSymbolJob) obj; + return delegate.equals(that.delegate) + && regExp.equals(that.regExp) + && symbolType == that.symbolType + && propertiesEquals(that); + } + + public int hashCode() { + return 0; + } } ! public static class FindExactSymbolJob extends FindSymbolJob { private final ISymbolFinder delegate; private final Symbol symbol; ! public FindExactSymbolJob(ISymbolFinder delegate, Symbol symbol) { super("find "+symbol); this.delegate = delegate; *************** *** 103,113 **** return delegate.find(symbol); } } - - - public Set find() { - // TODO Auto-generated method stub - return null; - } - } --- 124,141 ---- return delegate.find(symbol); } + + public boolean equals(Object obj) { + if (!(obj instanceof FindExactSymbolJob)) + return false; + + FindExactSymbolJob that = (FindExactSymbolJob) obj; + return delegate.equals(that.delegate) + && symbol.equals(that.symbol) + && propertiesEquals(that); + } + + public int hashCode() { + return 0; + } } } |