/******************************************************************************* * Copyright (c) 2012 Michael Vorburger (http://www.vorburger.ch). * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package ch.vorburger.xtext.databinding.internal.sourceadapt; import org.eclipse.xtext.resource.XtextResource; import org.eclipse.xtext.util.concurrent.IReadAccess; import org.eclipse.xtext.util.concurrent.IUnitOfWork; import org.eclipse.xtext.util.concurrent.IWriteAccess; // package-local public class XtextResourceDelegatingAccess implements IXtextResourceReadWriteAccess { // TODO LOW Remove this once XTextDocument implements IXtextResourceReadWriteAccess private final IWriteAccess<XtextResource> writeDelegate; private final IReadAccess<XtextResource> readDelegate; @SuppressWarnings("unchecked") public XtextResourceDelegatingAccess(IWriteAccess<XtextResource> xTextWriteAccess) { writeDelegate = xTextWriteAccess; readDelegate = (IReadAccess<XtextResource>) xTextWriteAccess; } @Override public <T> T modify(IUnitOfWork<T, XtextResource> work) { return writeDelegate.modify(work); } @Override public <T> T readOnly(IUnitOfWork<T, XtextResource> work) { return readDelegate.readOnly(work); } }