final int filter= descriptors[index].getFlags(); if ((filter | flags) == filter)
final int current= descriptors[index].getFlags(); if ((current | flags) == current)
	public RefactoringHistory readRefactoringHistory(final InputStream stream, int flags) throws CoreException {		Assert.isNotNull(stream);		Assert.isTrue(flags >= RefactoringDescriptor.NONE);		final List list= new ArrayList();		final RefactoringSessionDescriptor descriptor= new RefactoringSessionReader().readSession(new InputSource(stream));		if (descriptor != null) {			final RefactoringDescriptor[] descriptors= descriptor.getRefactorings();			if (flags > RefactoringDescriptor.NONE) {				for (int index= 0; index < descriptors.length; index++) {					final int filter= descriptors[index].getFlags();					if ((filter | flags) == filter)						list.add(descriptors[index]);				}			} else				list.addAll(Arrays.asList(descriptors));		}		final RefactoringDescriptorProxy[] proxies= new RefactoringDescriptorProxy[list.size()];		for (int index= 0; index < list.size(); index++)			proxies[index]= new RefactoringDescriptorProxyAdapter((RefactoringDescriptor) list.get(index));		return new RefactoringHistoryImplementation(proxies);	}