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
.tracecompass
.tmf
.analysis
.xml
.core
.model
.readwrite
;
15 import org
.eclipse
.tracecompass
.statesystem
.core
.ITmfStateSystemBuilder
;
16 import org
.eclipse
.tracecompass
.statesystem
.core
.exceptions
.AttributeNotFoundException
;
17 import org
.eclipse
.tracecompass
.tmf
.analysis
.xml
.core
.model
.TmfXmlStateAttribute
;
18 import org
.eclipse
.tracecompass
.tmf
.analysis
.xml
.core
.module
.IXmlStateSystemContainer
;
19 import org
.w3c
.dom
.Element
;
22 * Implements a state attribute in a read write mode. See
23 * {@link TmfXmlStateAttribute} for the syntax of this attribute.
25 * In read-write mode, attributes that are requested but do not exist are added
26 * to the state system.
28 * @author Geneviève Bastien
30 public class TmfXmlReadWriteStateAttribute
extends TmfXmlStateAttribute
{
36 * The factory used to create XML model elements
38 * The XML element corresponding to this attribute
40 * The state system container this state value belongs to
42 public TmfXmlReadWriteStateAttribute(TmfXmlReadWriteModelFactory modelFactory
, Element attribute
, IXmlStateSystemContainer container
) {
43 super(modelFactory
, attribute
, container
);
47 protected ITmfStateSystemBuilder
getStateSystem() {
48 return (ITmfStateSystemBuilder
) super.getStateSystem();
52 protected int getQuarkAbsoluteAndAdd(String
... path
) throws AttributeNotFoundException
{
53 return getStateSystem().getQuarkAbsoluteAndAdd(path
);
57 protected int getQuarkRelativeAndAdd(int startNodeQuark
, String
... path
) throws AttributeNotFoundException
{
58 return getStateSystem().getQuarkRelativeAndAdd(startNodeQuark
, path
);