blob: bc1ea4ab03993e4850b241af240223ffbb16a3c9 [file] [log] [blame]
/*=============================================================================#
# Copyright (c) 2009, 2019 Stephan Wahlbrink and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
package org.eclipse.statet.internal.redocs.tex.r.model;
import java.util.List;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.statet.docmlet.tex.core.ast.Embedded;
import org.eclipse.statet.docmlet.tex.core.model.EmbeddingReconcileItem;
import org.eclipse.statet.docmlet.tex.core.model.ILtxModelInfo;
import org.eclipse.statet.docmlet.tex.core.model.ILtxSuModelContainerEmbeddedExtension;
import org.eclipse.statet.docmlet.tex.core.model.LtxSuModelContainer;
import org.eclipse.statet.docmlet.tex.core.model.TexModel;
import org.eclipse.statet.internal.redocs.tex.r.RedocsTexRPlugin;
import org.eclipse.statet.ltk.core.LTK;
import org.eclipse.statet.ltk.core.SourceContent;
import org.eclipse.statet.ltk.issues.core.ProblemRequestor;
import org.eclipse.statet.r.core.model.RModel;
import org.eclipse.statet.redocs.tex.r.core.model.LtxRweaveSourceUnit;
import org.eclipse.statet.redocs.tex.r.core.model.TexRweaveModel;
public class LtxRweaveSuModelContainer extends LtxSuModelContainer<LtxRweaveSourceUnit>
implements ILtxSuModelContainerEmbeddedExtension {
public LtxRweaveSuModelContainer(final LtxRweaveSourceUnit su) {
super(su);
}
@Override
public boolean isContainerFor(final String modelTypeId) {
return (modelTypeId == TexModel.LTX_TYPE_ID || modelTypeId == TexRweaveModel.LTX_R_MODEL_TYPE_ID);
}
@Override
public String getNowebType() {
return RModel.R_TYPE_ID;
}
@Override
public void reconcileEmbeddedAst(final SourceContent content, final List<Embedded> list,
final int level, final IProgressMonitor monitor) {
LtxRChunkReconciler.getInstance()
.reconcileAst(this, content, list, monitor);
}
@Override
public void reconcileEmbeddedModel(final SourceContent content, final ILtxModelInfo texModel,
final List<EmbeddingReconcileItem> list,
final int level, final IProgressMonitor monitor) {
LtxRChunkReconciler.getInstance()
.reconcileModel(this, content, texModel, list, level, monitor);
}
@Override
public void reportEmbeddedProblems(final SourceContent content, final ILtxModelInfo texModel,
final ProblemRequestor problemRequestor,
final int level, final IProgressMonitor monitor) {
LtxRChunkReconciler.getInstance()
.reportEmbeddedProblems(this, content, texModel, problemRequestor, level, monitor);
}
@Override
public ProblemRequestor createProblemRequestor() {
if (getMode() == LTK.EDITOR_CONTEXT) {
return RedocsTexRPlugin.getInstance().getDocRDocumentProvider().createProblemRequestor(
getSourceUnit() );
}
return null;
}
}