/**
* generated by Xtext
*/
package de.unidue.ecg.dialogScript.ui.labeling;
import com.google.common.base.Objects;
import com.google.inject.Inject;
import de.unidue.ecg.dialogScript.dialogScript.CharacterDefinition;
import de.unidue.ecg.dialogScript.dialogScript.CharactersDefinition;
import de.unidue.ecg.dialogScript.dialogScript.ChoiceDialog;
import de.unidue.ecg.dialogScript.dialogScript.ConditionDefinition;
import de.unidue.ecg.dialogScript.dialogScript.ConditionList;
import de.unidue.ecg.dialogScript.dialogScript.Conditional;
import de.unidue.ecg.dialogScript.dialogScript.ConditionalBody;
import de.unidue.ecg.dialogScript.dialogScript.ConditionalChoiceDialog;
import de.unidue.ecg.dialogScript.dialogScript.ConditionsDefinition;
import de.unidue.ecg.dialogScript.dialogScript.Defaults;
import de.unidue.ecg.dialogScript.dialogScript.DialogLine;
import de.unidue.ecg.dialogScript.dialogScript.Exit;
import de.unidue.ecg.dialogScript.dialogScript.FirstTime;
import de.unidue.ecg.dialogScript.dialogScript.Hub;
import de.unidue.ecg.dialogScript.dialogScript.InvokeHub;
import de.unidue.ecg.dialogScript.dialogScript.InvokeScene;
import de.unidue.ecg.dialogScript.dialogScript.Modifier;
import de.unidue.ecg.dialogScript.dialogScript.OtherTimes;
import de.unidue.ecg.dialogScript.dialogScript.Otherwise;
import de.unidue.ecg.dialogScript.dialogScript.OtherwiseChoice;
import de.unidue.ecg.dialogScript.dialogScript.PartingLines;
import de.unidue.ecg.dialogScript.dialogScript.Scene;
import de.unidue.ecg.dialogScript.dialogScript.Script;
import de.unidue.ecg.dialogScript.dialogScript.Switch;
import de.unidue.ecg.dialogScript.dialogScript.SwitchDefinition;
import de.unidue.ecg.dialogScript.dialogScript.SwitchList;
import de.unidue.ecg.dialogScript.dialogScript.SwitchOff;
import de.unidue.ecg.dialogScript.dialogScript.SwitchOn;
import de.unidue.ecg.dialogScript.dialogScript.SwitchValue;
import de.unidue.ecg.dialogScript.dialogScript.SwitchesDefinition;
import java.util.Iterator;
import java.util.List;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider;
/**
* Provides labels for a EObjects.
*
* see http://www.eclipse.org/Xtext/documentation.html#labelProvider
*/
@SuppressWarnings("all")
public class DialogScriptLabelProvider extends DefaultEObjectLabelProvider {
@Inject
public DialogScriptLabelProvider(final AdapterFactoryLabelProvider delegate) {
super(delegate);
}
public String text(final Script script) {
Resource _eResource = script.eResource();
URI _uRI = _eResource.getURI();
String _lastSegment = _uRI.lastSegment();
String _plus = ("Dialog script: " + _lastSegment);
return _plus;
}
public String text(final CharactersDefinition ele) {
return "characters";
}
public String text(final SwitchesDefinition ele) {
return "switches";
}
public String text(final ConditionsDefinition ele) {
return "conditions";
}
public String text(final Scene scene) {
String _name = scene.getName();
String _plus = ("scene " + _name);
return _plus;
}
public String text(final Defaults defaults) {
return "default lines";
}
public String text(final Hub hub) {
String _name = hub.getName();
String _plus = ("hub " + _name);
return _plus;
}
public String text(final ConditionalChoiceDialog ele) {
EList<Modifier> _modifiers = ele.getModifiers();
String _createModifiers = this.createModifiers(_modifiers);
String _plus = (_createModifiers + "conditional choice");
return _plus;
}
public String text(final InvokeHub ele) {
String _xifexpression = null;
boolean _notEquals = (!Objects.equal(ele, null));
if (_notEquals) {
Hub _hub = ele.getHub();
String _name = _hub.getName();
String _plus = ("enter hub " + _name);
_xifexpression = _plus;
}
return _xifexpression;
}
public String text(final InvokeScene ele) {
String _xifexpression = null;
boolean _notEquals = (!Objects.equal(ele, null));
if (_notEquals) {
Scene _scene = ele.getScene();
String _name = _scene.getName();
String _plus = ("enter scene " + _name);
_xifexpression = _plus;
}
return _xifexpression;
}
public String text(final Exit exit) {
String _xifexpression = null;
boolean _notEquals = (!Objects.equal(exit, null));
if (_notEquals) {
String _xifexpression_1 = null;
boolean _isExitHub = exit.isExitHub();
if (_isExitHub) {
_xifexpression_1 = "exit hub";
} else {
String _xifexpression_2 = null;
boolean _isExitScene = exit.isExitScene();
if (_isExitScene) {
_xifexpression_2 = "exit scene";
}
_xifexpression_1 = _xifexpression_2;
}
_xifexpression = _xifexpression_1;
}
return _xifexpression;
}
public String text(final DialogLine line) {
CharacterDefinition _character = line.getCharacter();
String _name = _character.getName();
String _plus = (_name + ": ");
String _lines = line.getLines();
String _plus_1 = (_plus + _lines);
return _plus_1;
}
public String text(final FirstTime firstTime) {
return "first time";
}
public String text(final OtherTimes otherTimes) {
return "other times";
}
public String text(final ConditionList list) {
String _xifexpression = null;
boolean _or = false;
EObject _eContainer = list.eContainer();
if ((_eContainer instanceof Conditional)) {
_or = true;
} else {
EObject _eContainer_1 = list.eContainer();
_or = ((_eContainer instanceof Conditional) || (_eContainer_1 instanceof ConditionalChoiceDialog));
}
if (_or) {
String _createConditionText = this.createConditionText(list);
String _plus = ("condition: " + _createConditionText);
_xifexpression = _plus;
} else {
String _xifexpression_1 = null;
boolean _or_1 = false;
EObject _eContainer_2 = list.eContainer();
if ((_eContainer_2 instanceof Otherwise)) {
_or_1 = true;
} else {
EObject _eContainer_3 = list.eContainer();
_or_1 = ((_eContainer_2 instanceof Otherwise) || (_eContainer_3 instanceof OtherwiseChoice));
}
if (_or_1) {
String _createConditionText_1 = this.createConditionText(list);
String _plus_1 = ("otherwise: " + _createConditionText_1);
_xifexpression_1 = _plus_1;
}
_xifexpression = _xifexpression_1;
}
return _xifexpression;
}
public String text(final ChoiceDialog choiceDialog) {
EList<Modifier> _modifiers = choiceDialog.getModifiers();
String _createModifiers = this.createModifiers(_modifiers);
String _plus = (_createModifiers + "choice ");
String _name = choiceDialog.getName();
String _plus_1 = (_plus + _name);
return _plus_1;
}
public String createModifiers(final List<Modifier> modifiers) {
String _xblockexpression = null;
{
String result = "";
for (final Modifier m : modifiers) {
String _name = m.getName();
String _plus = (result + _name);
String _plus_1 = (_plus + " ");
result = _plus_1;
}
_xblockexpression = (result);
}
return _xblockexpression;
}
public String text(final Otherwise otherwise) {
String _xifexpression = null;
ConditionList _conditionList = otherwise.getConditionList();
boolean _equals = Objects.equal(_conditionList, null);
if (_equals) {
_xifexpression = " ";
} else {
ConditionList _conditionList_1 = otherwise.getConditionList();
String _createConditionText = this.createConditionText(_conditionList_1);
String _plus = (": " + _createConditionText);
_xifexpression = _plus;
}
String _plus_1 = ("otherwise" + _xifexpression);
return _plus_1;
}
public String text(final OtherwiseChoice otherwise) {
String _xifexpression = null;
ConditionList _conditionList = otherwise.getConditionList();
boolean _equals = Objects.equal(_conditionList, null);
if (_equals) {
_xifexpression = " ";
} else {
ConditionList _conditionList_1 = otherwise.getConditionList();
String _createConditionText = this.createConditionText(_conditionList_1);
String _plus = (": " + _createConditionText);
_xifexpression = _plus;
}
String _plus_1 = ("otherwise" + _xifexpression);
return _plus_1;
}
public String text(final Conditional conditional) {
EList<Modifier> _modifiers = conditional.getModifiers();
String _createModifiers = this.createModifiers(_modifiers);
String _plus = (_createModifiers + "conditional dialog");
return _plus;
}
public String text(final ConditionalBody body) {
return "body";
}
public String text(final SwitchList switchList) {
EList<Switch> _switches = switchList.getSwitches();
Iterator<Switch> _iterator = _switches.iterator();
String _createSwitchList = this.createSwitchList(_iterator);
String _plus = ("when " + _createSwitchList);
return _plus;
}
public String createSwitchList(final Iterator<Switch> iterator) {
String _xblockexpression = null;
{
String result = "";
boolean _hasNext = iterator.hasNext();
boolean _while = _hasNext;
while (_while) {
{
final Switch switch_ = iterator.next();
SwitchDefinition _switch = switch_.getSwitch();
String _name = _switch.getName();
String _plus = (result + _name);
String _plus_1 = (_plus + " is ");
SwitchDefinition _switch_1 = switch_.getSwitch();
SwitchValue _value = _switch_1.getValue();
String _plus_2 = (_plus_1 + _value);
result = _plus_2;
boolean _hasNext_1 = iterator.hasNext();
if (_hasNext_1) {
result = (result + "and ");
}
}
boolean _hasNext_1 = iterator.hasNext();
_while = _hasNext_1;
}
_xblockexpression = (result);
}
return _xblockexpression;
}
public String text(final Switch switch_) {
SwitchDefinition _switch = switch_.getSwitch();
String _name = _switch.getName();
return _name;
}
public String text(final SwitchDefinition switchDefinition) {
String _name = switchDefinition.getName();
return _name;
}
public String createConditionText(final ConditionList conditionList) {
String _xblockexpression = null;
{
String result = "";
boolean _and = false;
EList<ConditionDefinition> _conditions = conditionList.getConditions();
boolean _notEquals = (!Objects.equal(_conditions, null));
if (!_notEquals) {
_and = false;
} else {
EList<ConditionDefinition> _conditions_1 = conditionList.getConditions();
boolean _isEmpty = _conditions_1.isEmpty();
boolean _not = (!_isEmpty);
_and = (_notEquals && _not);
}
if (_and) {
EList<ConditionDefinition> _conditions_2 = conditionList.getConditions();
final Iterator<ConditionDefinition> iterator = _conditions_2.iterator();
boolean _hasNext = iterator.hasNext();
boolean _while = _hasNext;
while (_while) {
{
final ConditionDefinition condition = iterator.next();
String _name = condition.getName();
String _plus = (result + _name);
result = _plus;
String _xifexpression = null;
boolean _hasNext_1 = iterator.hasNext();
if (_hasNext_1) {
_xifexpression = " or ";
} else {
_xifexpression = "";
}
String _plus_1 = (result + _xifexpression);
result = _plus_1;
}
boolean _hasNext_1 = iterator.hasNext();
_while = _hasNext_1;
}
}
_xblockexpression = (result);
}
return _xblockexpression;
}
public String text(final SwitchOff switchOff) {
EList<SwitchDefinition> _sets = switchOff.getSets();
Iterator<SwitchDefinition> _iterator = _sets.iterator();
String _createSwitchSet = this.createSwitchSet(_iterator);
String _plus = ("switched off: " + _createSwitchSet);
return _plus;
}
public String text(final SwitchOn switchOn) {
EList<SwitchDefinition> _sets = switchOn.getSets();
Iterator<SwitchDefinition> _iterator = _sets.iterator();
String _createSwitchSet = this.createSwitchSet(_iterator);
String _plus = ("switched on: " + _createSwitchSet);
return _plus;
}
public String createSwitchSet(final Iterator<SwitchDefinition> iterator) {
String _xblockexpression = null;
{
String result = "";
boolean _hasNext = iterator.hasNext();
boolean _while = _hasNext;
while (_while) {
{
SwitchDefinition _next = iterator.next();
String _name = _next.getName();
String _plus = (result + _name);
result = _plus;
boolean _hasNext_1 = iterator.hasNext();
if (_hasNext_1) {
result = (result + ", ");
}
}
boolean _hasNext_1 = iterator.hasNext();
_while = _hasNext_1;
}
_xblockexpression = (result);
}
return _xblockexpression;
}
public String text(final PartingLines partingLines) {
return "parting lines";
}
}