/**
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
*/
package org.sintef.thingml.resource.thingml.mopp;
public class ThingmlSyntaxElementDecorator {
/**
* the syntax element to be decorated
*/
private org.sintef.thingml.resource.thingml.grammar.ThingmlSyntaxElement decoratedElement;
/**
* an array of child decorators (one decorator per child of the decorated syntax
* element
*/
private ThingmlSyntaxElementDecorator[] childDecorators;
/**
* a list of the indices that must be printed
*/
private java.util.List<Integer> indicesToPrint = new java.util.ArrayList<Integer>();
public ThingmlSyntaxElementDecorator(org.sintef.thingml.resource.thingml.grammar.ThingmlSyntaxElement decoratedElement, ThingmlSyntaxElementDecorator[] childDecorators) {
super();
this.decoratedElement = decoratedElement;
this.childDecorators = childDecorators;
}
public void addIndexToPrint(Integer index) {
indicesToPrint.add(index);
}
public org.sintef.thingml.resource.thingml.grammar.ThingmlSyntaxElement getDecoratedElement() {
return decoratedElement;
}
public ThingmlSyntaxElementDecorator[] getChildDecorators() {
return childDecorators;
}
public Integer getNextIndexToPrint() {
if (indicesToPrint.size() == 0) {
return null;
}
return indicesToPrint.remove(0);
}
public String toString() {
return "" + getDecoratedElement();
}
}