blob: ce672c41a6e8cad1922fb53c9a024c31df467a6b [file] [log] [blame]
/*
-----------------------------------------------------------------------
-- CHESS core plugin --
-- --
-- Copyright (C) 2011-2012 --
-- University of Padova, ITALY --
-- --
-- Author: Alessandro Zovi azovi@math.unipd.it --
-- --
-- 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 org.polarsys.chess.core.views;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import org.polarsys.chess.core.profiles.CHESSProfileManager;
/**
* A collection of constants that defines the association between diagrams and design views and a mapping
* from Papyrus diagram names to UML names used internally by CHESS permissions.
*
*/
public class ViewDiagramAssociations {
/** The UML diagrams. */
private static Set<String> UMLDiagrams = new HashSet<String>();
/** The SYSML diagrams. */
private static Set<String> SYSMLDiagrams = new HashSet<String>();
/** The view diagrams association. */
public static HashMap<String, HashSet<String>> viewDiagramsAssociation = new HashMap<String, HashSet<String>>();
/** The anydiagram. */
public static String ANYDIAGRAM = "*";
/** The class diagram. */
public static String classDiagram = "PapyrusUMLClassDiagram";
/** The composite diagram. */
public static String compositeDiagram = "CompositeStructure";
/** The activity diagram. */
public static String activityDiagram = "PapyrusUMLActivityDiagram";
/** The communication diagram. */
public static String communicationDiagram = "PapyrusUMLCommunicationDiagram";
/** The profile diagram. */
public static String profileDiagram = "PapyrusUMLProfileDiagram";
/** The sequence diagram. */
public static String sequenceDiagram = "PapyrusUMLSequenceDiagram";
/** The state machine diagram. */
public static String stateMachineDiagram = "PapyrusUMLStateMachineDiagram";
/** The use case diagram. */
public static String useCaseDiagram = "UseCase";
/** The block diagram. */
public static String blockDiagram = "BlockDefinition";
/** The internal block diagram. */
public static String internalBlockDiagram = "InternalBlock";
/** The parametric diagram. */
public static String parametricDiagram = "Parametric";
/** The requirement diagram. */
public static String requirementDiagram = "RequirementDiagram";
/**
* Maps Papyrus diagram names to UML names used internally by CHESS permissions.
*/
public static HashMap<String, String> papyrusNames2Standard = new HashMap<String, String>(12);
static {
papyrusNames2Standard.put(classDiagram, "Class");
papyrusNames2Standard.put(compositeDiagram, "Composite");
papyrusNames2Standard.put(activityDiagram, "Activity");
papyrusNames2Standard.put(communicationDiagram, "Communication");
papyrusNames2Standard.put(profileDiagram, "Profile");
papyrusNames2Standard.put(sequenceDiagram, "Sequence");
papyrusNames2Standard.put(stateMachineDiagram, "StateMachine");
papyrusNames2Standard.put(useCaseDiagram, "UseCase");
papyrusNames2Standard.put(blockDiagram, "Block");
papyrusNames2Standard.put(internalBlockDiagram, "InternalBlock");
papyrusNames2Standard.put(parametricDiagram, "Parametric");
papyrusNames2Standard.put(requirementDiagram, "Requirement");
UMLDiagrams.add(activityDiagram);
UMLDiagrams.add(communicationDiagram);
UMLDiagrams.add("Package");//???
UMLDiagrams.add(profileDiagram);
UMLDiagrams.add(sequenceDiagram);
UMLDiagrams.add(stateMachineDiagram);
UMLDiagrams.add(classDiagram);
UMLDiagrams.add(compositeDiagram);
UMLDiagrams.add(useCaseDiagram);
SYSMLDiagrams.add(blockDiagram);
SYSMLDiagrams.add(internalBlockDiagram);
SYSMLDiagrams.add(parametricDiagram);
SYSMLDiagrams.add(requirementDiagram);
// Diagrams allowed in Functional view , now Component View
HashSet<String> componentViewDiagrams = new HashSet<String>();
componentViewDiagrams.add(classDiagram);
componentViewDiagrams.add(compositeDiagram);
componentViewDiagrams.add(stateMachineDiagram);
componentViewDiagrams.add(activityDiagram);
componentViewDiagrams.add(sequenceDiagram);
//TODO DEBUG
//componentViewDiagrams.add(communicationDiagram);
viewDiagramsAssociation.put(CHESSProfileManager.COMPONENT_VIEW,
componentViewDiagrams);
// Diagrams allowed in Extra-functional view
// viewDiagramsAssociation.put(CHESSProfileManager.EXTRAFUNCTIONAL_VIEW,
// new HashSet<String>());
// Diagrams allowed in Requirement view
HashSet<String> requirementDiagrams = new HashSet<String>();
requirementDiagrams.add(requirementDiagram);
viewDiagramsAssociation.put(CHESSProfileManager.REQUIREMENT_VIEW,
requirementDiagrams);
// Diagrams allowed in Deployment view
HashSet<String> deploymentDiagrams = new HashSet<String>();
deploymentDiagrams.add(classDiagram);
deploymentDiagrams.add(compositeDiagram);
deploymentDiagrams.add(stateMachineDiagram);
viewDiagramsAssociation.put(CHESSProfileManager.DEPLOYMENT_VIEW,
deploymentDiagrams);
// TODO diagrams for RtAnalysisView to be defined
HashSet<String> rtAnalysisDiagrams = new HashSet<String>();
rtAnalysisDiagrams.add("PapyrusUMLActivityDiagram");
// rtAnalysisDiagrams.add("PapyrusUMLCommunicationDiagram");
rtAnalysisDiagrams.add("Package");
// rtAnalysisDiagrams.add("PapyrusUMLProfileDiagram");
rtAnalysisDiagrams.add("PapyrusUMLSequenceDiagram");
rtAnalysisDiagrams.add("PapyrusUMLStateMachineDiagram");
rtAnalysisDiagrams.add("PapyrusUMLClassDiagram");
rtAnalysisDiagrams.add("CompositeStructure");
rtAnalysisDiagrams.add("UseCase");
viewDiagramsAssociation.put(CHESSProfileManager.RT_ANALYSIS_VIEW,
rtAnalysisDiagrams);
// TODO diagrams for DepAnalysisView to be defined
HashSet<String> depAnalysisDiagrams = new HashSet<String>();
depAnalysisDiagrams.add("PapyrusUMLActivityDiagram");
// depAnalysisDiagrams("PapyrusUMLCommunicationDiagram");
depAnalysisDiagrams.add("Package");
// depAnalysisDiagrams("PapyrusUMLProfileDiagram");
depAnalysisDiagrams.add("PapyrusUMLSequenceDiagram");
depAnalysisDiagrams.add("PapyrusUMLStateMachineDiagram");
depAnalysisDiagrams.add("PapyrusUMLClassDiagram");
//depAnalysisDiagrams.add("classDiagramKind");
depAnalysisDiagrams.add("CompositeStructure");
depAnalysisDiagrams.add("UseCase");
viewDiagramsAssociation.put(
CHESSProfileManager.DEPENDABILITY_ANALYSIS_VIEW,
depAnalysisDiagrams);
// TODO diagrams for TimingDataFlowView to be defined
HashSet<String> timingDataFlowDiagrams = new HashSet<String>();
timingDataFlowDiagrams.addAll(UMLDiagrams);
viewDiagramsAssociation.put(CHESSProfileManager.TIMING_DATAFLOW_VIEW,
timingDataFlowDiagrams);
//SystemView
HashSet<String> systemDiagrams = new HashSet<String>();
systemDiagrams.add(blockDiagram);
systemDiagrams.add(internalBlockDiagram);
systemDiagrams.add(stateMachineDiagram);
systemDiagrams.add("CompositeStructure");
viewDiagramsAssociation.put(CHESSProfileManager.SYSTEM_VIEW,
systemDiagrams);
}
}