/*
 * generated by Xtext 2.12.0
 */
package org.etsi.mts.tdl.formatting2

import com.google.inject.Inject
import org.eclipse.xtext.formatting2.AbstractFormatter2
import org.eclipse.xtext.formatting2.IFormattableDocument
import org.etsi.mts.tdl.Comment
import org.etsi.mts.tdl.ElementImport
import org.etsi.mts.tdl.PackageableElement
import org.etsi.mts.tdl.services.TPLan2GrammarAccess
import org.etsi.mts.tdl.structuredobjectives.PICS

class TPLan2Formatter extends AbstractFormatter2 {
	
	@Inject extension TPLan2GrammarAccess

	def dispatch void format(org.etsi.mts.tdl.Package _package, extension IFormattableDocument document) {
		// TODO: format HiddenRegions around keywords, attributes, cross references, etc. 
		for (ElementImport elementImport : _package.getImport()) {
			elementImport.format;
		}
		for (PackageableElement packageableElement : _package.getPackagedElement()) {
			packageableElement.format;
		}
		for (org.etsi.mts.tdl.Package __package : _package.getNestedPackage()) {
			__package.format;
		}
	}

	def dispatch void format(PICS pICS, extension IFormattableDocument document) {
		// TODO: format HiddenRegions around keywords, attributes, cross references, etc. 
		for (Comment comment : pICS.getComment()) {
			comment.format;
		}
	}
	
	// TODO: implement for PICSReference, Entity, Event, EventSpecificationTemplate, EventOccurrenceSpecification, StructuredTestObjective, InitialConditions, ExpectedBehaviour, FinalConditions, EventSequence, RepeatedEventSequence, EventTemplateOccurrence, EntityBinding, TimeConstraint, EntityReference, EventReference, LiteralValue, Content, DataReference, DataInstanceUse, ParameterBinding, ContentReference, LiteralValueReference, StructuredDataType, StructuredDataInstance, MemberAssignment, TestConfiguration, Connection, ComponentType
}
