if (DEBUG) System.err.println("initialize");
	public static void initialize() {		if (DEBUG) System.err.println("initialize"); //$NON-NLS-1$				fgDeltaListener= new TypeCacheDeltaListener();		JavaCore.addElementChangedListener(fgDeltaListener);		Display d= Display.getDefault();		if (d != null)			d.asyncExec(				new Runnable() {					public void run() {						synchronized(fgLock) {							if (fgTypeCacherThread != null) {								if (fgTerminated) {									fgTypeCacherThread.abort();																										} else {									fgBackground= true;									if (DEBUG) System.err.println("inititialize: cache is being uptodated");	//$NON-NLS-1$								}														} else {								if (fgTerminated) {									if (DEBUG) System.err.println("inititialize: already terminated");	 //$NON-NLS-1$								} else {									fgBackground= true;									if (fgTypeCache != null) {										if (DEBUG) System.err.println("inititialize: cache is uptodate");	//$NON-NLS-1$									} else {										fgTypeCacherThread= new TypeCacher(fgSizeHint, INITIAL_DELAY, null);										fgTypeCacherThread.start();									}															}							}						}							}				}			);	}