/******************************************************************************* * Copyright (c) 2010, 2015 Willink Transformations and others. * 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 * * Contributors: * E.D.Willink - initial API and implementation *******************************************************************************/ package org.eclipse.ocl.xtext.oclinecore.as2cs; import java.util.Map; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.ocl.pivot.Namespace; import org.eclipse.ocl.pivot.PivotPackage; import org.eclipse.ocl.pivot.internal.utilities.EnvironmentFactoryInternal; import org.eclipse.ocl.pivot.resource.ASResource; import org.eclipse.ocl.xtext.base.as2cs.AS2CS; import org.eclipse.ocl.xtext.base.as2cs.AS2CSConversion; import org.eclipse.ocl.xtext.base.as2cs.BaseDeclarationVisitor; import org.eclipse.ocl.xtext.base.as2cs.BaseReferenceVisitor; import org.eclipse.ocl.xtext.base.utilities.BaseCSResource; import org.eclipse.ocl.xtext.essentialocl.as2cs.EssentialOCLAS2CS; public class OCLinEcoreAS2CS extends EssentialOCLAS2CS { private static final class Factory implements AS2CS.Factory { private static AS2CS.@NonNull Factory INSTANCE = new Factory(); @Override public @NonNull OCLinEcoreDeclarationVisitor createDeclarationVisitor(@NonNull AS2CSConversion converter) { return new OCLinEcoreDeclarationVisitor(converter); } @Override public @NonNull BaseReferenceVisitor createReferenceVisitor(@NonNull AS2CSConversion converter, @Nullable Namespace scope) { return new BaseReferenceVisitor(converter); } @SuppressWarnings("null") @Override public @NonNull EClass @NonNull [] getEClasses() { return new EClass @NonNull [] { PivotPackage.Literals.ANNOTATION, PivotPackage.Literals.CONSTRAINT, PivotPackage.Literals.EXPRESSION_IN_OCL }; } } public OCLinEcoreAS2CS(@NonNull Map<? extends BaseCSResource, ? extends ASResource> cs2asResourceMap, @NonNull EnvironmentFactoryInternal environmentFactory) { super(cs2asResourceMap, environmentFactory); addFactory(Factory.INSTANCE); for (Resource csResource : cs2asResourceMap.keySet()) { assert csResource != null; environmentFactory.adapt(csResource); } } @Override public @NonNull BaseDeclarationVisitor createDefaultDeclarationVisitor(@NonNull AS2CSConversion converter) { return new OCLinEcoreDeclarationVisitor(converter); } }