org.eclipse.xtext.serializer.sequencer
Interface ITransientValueService
- All Known Implementing Classes:
- LegacyTransientValueService, TransientValueService, XtextTransientValueService2
public interface ITransientValueService
Implementations of this interface decide which values are serialized during serialization. The behavior differs
slightly for single-value features and multi-value features, because single-value-features have an extra status:
"optional".
Transient Values must not be serialized in any case.
Optional Values should not be serialized, but the serializer may decide to serialize them anyway, if needed. The use
case for this is that if a features holds its default value, this values doesn't need to be serialized. However, the
grammar may require the feature to be serialized. Example: (x=INT y=INT)?; For x=1 and y=0 with 0 being y's default
value, 0 needs to be serialized since otherwise x can not be serialized.
Multi-Value-Features don't have this "optional" status, because even if their list holds a default-value, this value
needs to be serialized to be preserved.
- Author:
- Moritz Eysholdt - Initial contribution and API
isListTransient
ITransientValueService.ListTransient isListTransient(org.eclipse.emf.ecore.EObject semanticObject,
org.eclipse.emf.ecore.EStructuralFeature feature)
isValueInListTransient
boolean isValueInListTransient(org.eclipse.emf.ecore.EObject semanticObject,
int index,
org.eclipse.emf.ecore.EStructuralFeature feature)
isValueTransient
ITransientValueService.ValueTransient isValueTransient(org.eclipse.emf.ecore.EObject semanticObject,
org.eclipse.emf.ecore.EStructuralFeature feature)