1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-31 12:55:40 +02:00

Fix late coupling of CodeReaderCache.

Allow for cdtparser.jar to build w/out dependencies on cdtcore.jar.
This commit is contained in:
John Camelon 2005-03-22 18:44:31 +00:00
parent c9fa81c5e6
commit 56f19f3711
4 changed files with 14 additions and 15 deletions

View file

@ -6,12 +6,13 @@
* *
* Contributors: Rational Software - Initial API and implementation * Contributors: Rational Software - Initial API and implementation
******************************************************************************/ ******************************************************************************/
package org.eclipse.cdt.core.parser; package org.eclipse.cdt.internal.core.dom.parser;
import java.util.Iterator; import java.util.Iterator;
import org.eclipse.cdt.core.parser.CodeReader;
import org.eclipse.cdt.core.parser.ICodeReaderCache;
import org.eclipse.cdt.internal.core.parser.InternalParserUtil; import org.eclipse.cdt.internal.core.parser.InternalParserUtil;
import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
/** /**
* This is an empty implementation of the ICodeReaderCache interface. It is used to implement a * This is an empty implementation of the ICodeReaderCache interface. It is used to implement a
@ -42,7 +43,7 @@ public class EmptyCodeReaderCache implements ICodeReaderCache {
* @return * @return
*/ */
public CodeReader createReader( String finalPath, Iterator workingCopies ) { public CodeReader createReader( String finalPath, Iterator workingCopies ) {
return ParserUtil.createReader(finalPath, workingCopies); return InternalParserUtil.createFileReader(finalPath);
} }
/** /**

View file

@ -12,9 +12,8 @@ package org.eclipse.cdt.internal.core.parser.scanner2;
import org.eclipse.cdt.core.dom.ICodeReaderFactory; import org.eclipse.cdt.core.dom.ICodeReaderFactory;
import org.eclipse.cdt.core.parser.CodeReader; import org.eclipse.cdt.core.parser.CodeReader;
import org.eclipse.cdt.core.parser.CodeReaderCache;
import org.eclipse.cdt.core.parser.EmptyCodeReaderCache;
import org.eclipse.cdt.core.parser.ICodeReaderCache; import org.eclipse.cdt.core.parser.ICodeReaderCache;
import org.eclipse.cdt.internal.core.dom.parser.EmptyCodeReaderCache;
/** /**
* @author jcamelon * @author jcamelon

View file

@ -9,7 +9,6 @@
package org.eclipse.cdt.core.parser; package org.eclipse.cdt.core.parser;
import org.eclipse.cdt.internal.core.parser.InternalParserUtil;
import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
import org.eclipse.cdt.internal.core.util.ILRUCacheable; import org.eclipse.cdt.internal.core.util.ILRUCacheable;
import org.eclipse.cdt.internal.core.util.LRUCache; import org.eclipse.cdt.internal.core.util.LRUCache;
@ -51,7 +50,7 @@ public class CodeReaderCache implements ICodeReaderCache {
private CodeReaderLRUCache cache = null; // the actual cache private CodeReaderLRUCache cache = null; // the actual cache
private class UpdateCodeReaderCacheListener implements IResourceChangeListener { private class UpdateCodeReaderCacheListener implements IResourceChangeListener {
ICodeReaderCache cache = null; ICodeReaderCache c = null;
/** /**
* Create the UpdateCodeReaderCacheListener used to dispatch events to remove CodeReaders * Create the UpdateCodeReaderCacheListener used to dispatch events to remove CodeReaders
@ -59,12 +58,12 @@ public class CodeReaderCache implements ICodeReaderCache {
* @param cache * @param cache
*/ */
public UpdateCodeReaderCacheListener(ICodeReaderCache cache) { public UpdateCodeReaderCacheListener(ICodeReaderCache cache) {
this.cache = cache; this.c = cache;
} }
private class RemoveCacheJob extends Job { private class RemoveCacheJob extends Job {
private static final String REMOVE_CACHE = "Remove Cache"; //$NON-NLS-1$ private static final String REMOVE_CACHE = "Remove Cache"; //$NON-NLS-1$
ICodeReaderCache cache = null; ICodeReaderCache cache1 = null;
IResourceChangeEvent event = null; IResourceChangeEvent event = null;
/** /**
@ -75,7 +74,7 @@ public class CodeReaderCache implements ICodeReaderCache {
*/ */
public RemoveCacheJob(ICodeReaderCache cache, IResourceChangeEvent event) { public RemoveCacheJob(ICodeReaderCache cache, IResourceChangeEvent event) {
super(REMOVE_CACHE); super(REMOVE_CACHE);
this.cache = cache; this.cache1 = cache;
this.event = event; this.event = event;
} }
@ -96,8 +95,8 @@ public class CodeReaderCache implements ICodeReaderCache {
} }
} }
if (key != null && cache != null) if (key != null && cache1 != null)
cache.remove(key); cache1.remove(key);
return Status.OK_STATUS; return Status.OK_STATUS;
} }
@ -108,8 +107,8 @@ public class CodeReaderCache implements ICodeReaderCache {
* Identifies when a resource was chaned and schedules a new RemoveCacheJob. * Identifies when a resource was chaned and schedules a new RemoveCacheJob.
*/ */
public void resourceChanged(IResourceChangeEvent event) { public void resourceChanged(IResourceChangeEvent event) {
if (cache instanceof CodeReaderCache) if (c instanceof CodeReaderCache)
new RemoveCacheJob(cache, event).schedule(); new RemoveCacheJob(c, event).schedule();
} }
} }

View file

@ -17,8 +17,8 @@ import org.eclipse.cdt.core.browser.IWorkingCopyProvider;
import org.eclipse.cdt.core.dom.CDOM; import org.eclipse.cdt.core.dom.CDOM;
import org.eclipse.cdt.core.dom.ICodeReaderFactory; import org.eclipse.cdt.core.dom.ICodeReaderFactory;
import org.eclipse.cdt.core.parser.CodeReader; import org.eclipse.cdt.core.parser.CodeReader;
import org.eclipse.cdt.core.parser.EmptyCodeReaderCache;
import org.eclipse.cdt.core.parser.ICodeReaderCache; import org.eclipse.cdt.core.parser.ICodeReaderCache;
import org.eclipse.cdt.internal.core.dom.parser.EmptyCodeReaderCache;
import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator; import org.eclipse.cdt.internal.core.parser.ast.EmptyIterator;
/** /**