package com.redhat.ceylon.eclipse.core.model.mirror; import com.redhat.ceylon.compiler.typechecker.context.PhasedUnit; import com.redhat.ceylon.compiler.typechecker.tree.Tree; import com.redhat.ceylon.model.typechecker.model.Declaration; @Deprecated public class SourceDeclarationHolder { private PhasedUnit phasedUnit; private Tree.Declaration astDeclaration; private Declaration modelDeclaration = null; private boolean isSourceToCompile = true; public SourceDeclarationHolder(PhasedUnit phasedUnit, Tree.Declaration astDeclaration, boolean isSourceToCompile) { this.phasedUnit = phasedUnit; this.astDeclaration = astDeclaration; this.isSourceToCompile = isSourceToCompile; } public PhasedUnit getPhasedUnit() { return phasedUnit; } public Tree.Declaration getAstDeclaration() { return astDeclaration; } public Declaration getModelDeclaration() { if (modelDeclaration != null) { return modelDeclaration; } if (isSourceToCompile) { modelDeclaration = astDeclaration.getDeclarationModel(); } if (phasedUnit.isScanningDeclarations()) { return null; } if (!phasedUnit.isDeclarationsScanned()) { phasedUnit.scanDeclarations(); } if (!phasedUnit.isTypeDeclarationsScanned()) { phasedUnit.scanTypeDeclarations(); } modelDeclaration = astDeclaration.getDeclarationModel(); return modelDeclaration; } public boolean isSourceToCompile() { return isSourceToCompile; } public void setSourceToCompile(boolean isSourceToCompile) { this.isSourceToCompile = isSourceToCompile; } }