1 /*******************************************************************************
2 * Copyright (c) 2014 École Polytechnique de Montréal
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * Geneviève Bastien - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.model
.readonly
;
15 import java
.util
.List
;
17 import org
.eclipse
.jdt
.annotation
.NonNull
;
18 import org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.model
.ITmfXmlModelFactory
;
19 import org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.model
.ITmfXmlStateAttribute
;
20 import org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.model
.ITmfXmlStateValue
;
21 import org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.model
.TmfXmlCondition
;
22 import org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.model
.TmfXmlEventHandler
;
23 import org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.model
.TmfXmlLocation
;
24 import org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.model
.TmfXmlStateChange
;
25 import org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.model
.readwrite
.TmfXmlReadWriteModelFactory
;
26 import org
.eclipse
.linuxtools
.tmf
.analysis
.xml
.core
.module
.IXmlStateSystemContainer
;
27 import org
.w3c
.dom
.Element
;
30 * Concrete factory for XML model elements in read only mode
32 * @author Geneviève Bastien
34 public class TmfXmlReadOnlyModelFactory
implements ITmfXmlModelFactory
{
36 private static ITmfXmlModelFactory fInstance
= null;
39 * Get the instance of this model creator
41 * @return The {@link TmfXmlReadWriteModelFactory} instance
44 public static synchronized ITmfXmlModelFactory
getInstance() {
45 ITmfXmlModelFactory instance
= fInstance
;
46 if (instance
== null) {
47 instance
= new TmfXmlReadOnlyModelFactory();
54 public ITmfXmlStateAttribute
createStateAttribute(Element attribute
, IXmlStateSystemContainer container
) {
55 return new TmfXmlReadOnlyStateAttribute(this, attribute
, container
);
59 public ITmfXmlStateValue
createStateValue(Element node
, IXmlStateSystemContainer container
, List
<ITmfXmlStateAttribute
> attributes
) {
60 return new TmfXmlReadOnlyStateValue(this, node
, container
, attributes
);
64 public ITmfXmlStateValue
createStateValue(Element node
, IXmlStateSystemContainer container
, String eventField
) {
65 return new TmfXmlReadOnlyStateValue(this, node
, container
, eventField
);
69 public TmfXmlCondition
createCondition(Element node
, IXmlStateSystemContainer container
) {
70 return new TmfXmlCondition(this, node
, container
);
74 public TmfXmlEventHandler
createEventHandler(Element node
, IXmlStateSystemContainer container
) {
75 return new TmfXmlEventHandler(this, node
, container
);
79 public TmfXmlStateChange
createStateChange(Element node
, IXmlStateSystemContainer container
) {
80 return new TmfXmlStateChange(this, node
, container
);
84 public TmfXmlLocation
createLocation(Element node
, IXmlStateSystemContainer container
) {
85 return new TmfXmlLocation(this, node
, container
);