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
.readwrite
;
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
.module
.IXmlStateSystemContainer
;
26 import org
.w3c
.dom
.Element
;
29 * Concrete factory for XML model elements in read write mode
31 * @author Geneviève Bastien
33 public class TmfXmlReadWriteModelFactory
implements ITmfXmlModelFactory
{
35 private static ITmfXmlModelFactory fInstance
= null;
38 * Get the instance of this model creator
40 * @return The {@link TmfXmlReadWriteModelFactory} instance
43 public static synchronized ITmfXmlModelFactory
getInstance() {
44 ITmfXmlModelFactory instance
= fInstance
;
45 if (instance
== null) {
46 instance
= new TmfXmlReadWriteModelFactory();
53 public ITmfXmlStateAttribute
createStateAttribute(Element attribute
, IXmlStateSystemContainer container
) {
54 return new TmfXmlReadWriteStateAttribute(this, attribute
, container
);
58 public ITmfXmlStateValue
createStateValue(Element node
, IXmlStateSystemContainer container
, List
<ITmfXmlStateAttribute
> attributes
) {
59 return new TmfXmlReadWriteStateValue(this, node
, container
, attributes
);
63 public ITmfXmlStateValue
createStateValue(Element node
, IXmlStateSystemContainer container
, String eventField
) {
64 return new TmfXmlReadWriteStateValue(this, node
, container
, eventField
);
68 public TmfXmlCondition
createCondition(Element node
, IXmlStateSystemContainer container
) {
69 return new TmfXmlCondition(this, node
, container
);
73 public TmfXmlEventHandler
createEventHandler(Element node
, IXmlStateSystemContainer container
) {
74 return new TmfXmlEventHandler(this, node
, container
);
78 public TmfXmlStateChange
createStateChange(Element node
, IXmlStateSystemContainer container
) {
79 return new TmfXmlStateChange(this, node
, container
);
83 public TmfXmlLocation
createLocation(Element node
, IXmlStateSystemContainer container
) {
84 return new TmfXmlLocation(this, node
, container
);