/**
* Copyright 2004-2016 Riccardo Solmi. All rights reserved.
* This file is part of the Whole Platform.
*
* The Whole Platform is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Whole Platform is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with the Whole Platform. If not, see <http://www.gnu.org/licenses/>.
*/
package org.whole.langs.core;
import org.whole.lang.actions.reflect.ActionsLanguageKit;
import org.whole.lang.artifacts.reflect.ArtifactsLanguageKit;
import org.whole.lang.changes.reflect.ChangesLanguageKit;
import org.whole.lang.commons.reflect.CommonsLanguageKit;
import org.whole.lang.editors.reflect.EditorsLanguageKit;
import org.whole.lang.environment.reflect.EnvironmentLanguageKit;
import org.whole.lang.frames.reflect.FramesLanguageKit;
import org.whole.lang.grammars.reflect.GrammarsLanguageKit;
import org.whole.lang.math.reflect.MathLanguageKit;
import org.whole.lang.misc.reflect.MiscLanguageKit;
import org.whole.lang.models.codebase.ActionsModel;
import org.whole.lang.models.codebase.ArtifactsModel;
import org.whole.lang.models.codebase.EditorsModel;
import org.whole.lang.models.codebase.FramesModel;
import org.whole.lang.models.codebase.GrammarBasedModel;
import org.whole.lang.models.codebase.GrammarsModel;
import org.whole.lang.models.codebase.MathModel;
import org.whole.lang.models.codebase.MiscModel;
import org.whole.lang.models.codebase.ModelsModel;
import org.whole.lang.models.codebase.PojoModel;
import org.whole.lang.models.codebase.StatusModel;
import org.whole.lang.models.codebase.TemplatesModel;
import org.whole.lang.models.codebase.TypesModel;
import org.whole.lang.models.codebase.WorkflowModel;
import org.whole.lang.models.reflect.ModelsLanguageKit;
import org.whole.lang.patterns.reflect.PatternsLanguageKit;
import org.whole.lang.pojo.reflect.PojoLanguageKit;
import org.whole.lang.queries.reflect.QueriesLanguageKit;
import org.whole.lang.reflect.AbstractLanguageExtensionDeployer;
import org.whole.lang.reflect.ReflectionFactory;
import org.whole.lang.reusables.reflect.ReusablesLanguageKit;
import org.whole.lang.semantics.reflect.SemanticsLanguageKit;
import org.whole.lang.syntaxtrees.reflect.SyntaxTreesLanguageKit;
import org.whole.lang.templates.reflect.TemplatesLanguageKit;
import org.whole.lang.tests.reflect.TestsLanguageKit;
import org.whole.lang.types.reflect.TypesLanguageKit;
import org.whole.lang.workflows.reflect.WorkflowsLanguageKit;
/**
* @author Riccardo Solmi
*/
public class CoreMetaModelsDeployer extends AbstractLanguageExtensionDeployer {
public static final String GRAMMAR_BASED_URI = "http://lang.whole.org/GrammarBased";
public static final String STATUS_URI = "whole:org.whole.lang.status:Status";
@Override
public int getDeployLevel() {
return super.getDeployLevel()+1;
}
public void deploy(ReflectionFactory platform) {
platform.setMetaModelTemplate(CommonsLanguageKit.URI, "Commons model", "org/whole/lang/commons/CommonsModel.xwl");
platform.setMetaModelTemplate(ActionsLanguageKit.URI, new ActionsModel());
platform.setMetaModelTemplate(ArtifactsLanguageKit.URI, new ArtifactsModel());
platform.setMetaModelTemplate(ChangesLanguageKit.URI, "Changes model", "org/whole/lang/changes/ChangesModel.xwl");
platform.setMetaModelTemplate(EditorsLanguageKit.URI, new EditorsModel());
platform.setMetaModelTemplate(EnvironmentLanguageKit.URI, "Environment model", "org/whole/lang/environment/EnvironmentModel.xwl");
platform.setMetaModelTemplate(FramesLanguageKit.URI, new FramesModel());
platform.setMetaModelTemplate(GrammarsLanguageKit.URI, new GrammarsModel());
platform.setMetaModelTemplate(GRAMMAR_BASED_URI, new GrammarBasedModel());
platform.setMetaModelTemplate(MathLanguageKit.URI, new MathModel());
platform.setMetaModelTemplate(MiscLanguageKit.URI, new MiscModel());
platform.setMetaModelTemplate(ModelsLanguageKit.URI, new ModelsModel());
platform.setMetaModelTemplate(PatternsLanguageKit.URI, "Patterns model", "org/whole/lang/patterns/PatternsModel.xwl");
platform.setMetaModelTemplate(PojoLanguageKit.URI, new PojoModel());
platform.setMetaModelTemplate(QueriesLanguageKit.URI, "Queries Model", "org/whole/lang/queries/QueriesModel.xwl");
platform.setMetaModelTemplate(ReusablesLanguageKit.URI, "Reusables model", "org/whole/lang/reusables/ReusablesModel.xwl");
platform.setMetaModelTemplate(SemanticsLanguageKit.URI, "Semantics model", "org/whole/lang/semantics/SemanticsModel.xwl");
platform.setMetaModelTemplate(STATUS_URI, new StatusModel());
platform.setMetaModelTemplate(SyntaxTreesLanguageKit.URI, "Syntax Trees Model", "org/whole/lang/syntaxtrees/SyntaxTreesModel.xwl");
platform.setMetaModelTemplate(TestsLanguageKit.URI, "Tests model", "org/whole/lang/tests/TestsModel.xwl");
platform.setMetaModelTemplate(TemplatesLanguageKit.URI, new TemplatesModel());
platform.setMetaModelTemplate(TypesLanguageKit.URI, new TypesModel());
platform.setMetaModelTemplate(WorkflowsLanguageKit.URI, new WorkflowModel());
}
public void undeploy(ReflectionFactory platform) {
platform.unsetMetaModelTemplate(CommonsLanguageKit.URI);
platform.unsetMetaModelTemplate(ActionsLanguageKit.URI);
platform.unsetMetaModelTemplate(ArtifactsLanguageKit.URI);
platform.unsetMetaModelTemplate(ChangesLanguageKit.URI);
platform.unsetMetaModelTemplate(EditorsLanguageKit.URI);
platform.unsetMetaModelTemplate(EnvironmentLanguageKit.URI);
platform.unsetMetaModelTemplate(FramesLanguageKit.URI);
platform.unsetMetaModelTemplate(GrammarsLanguageKit.URI);
platform.unsetMetaModelTemplate(GRAMMAR_BASED_URI);
platform.unsetMetaModelTemplate(MathLanguageKit.URI);
platform.unsetMetaModelTemplate(MiscLanguageKit.URI);
platform.unsetMetaModelTemplate(ModelsLanguageKit.URI);
platform.unsetMetaModelTemplate(PatternsLanguageKit.URI);
platform.unsetMetaModelTemplate(PojoLanguageKit.URI);
platform.unsetMetaModelTemplate(QueriesLanguageKit.URI);
platform.unsetMetaModelTemplate(ReusablesLanguageKit.URI);
platform.unsetMetaModelTemplate(SemanticsLanguageKit.URI);
platform.unsetMetaModelTemplate(STATUS_URI);
platform.unsetMetaModelTemplate(SyntaxTreesLanguageKit.URI);
platform.unsetMetaModelTemplate(TestsLanguageKit.URI);
platform.unsetMetaModelTemplate(TemplatesLanguageKit.URI);
platform.unsetMetaModelTemplate(TypesLanguageKit.URI);
platform.unsetMetaModelTemplate(WorkflowsLanguageKit.URI);
}
}