All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.pelle.mango.dsl.generator.client.dictionary.DictionaryControls Maven / Gradle / Ivy

package io.pelle.mango.dsl.generator.client.dictionary;

import com.google.common.base.Objects;
import com.google.inject.Inject;
import io.pelle.mango.client.base.modules.dictionary.controls.IBaseControl;
import io.pelle.mango.client.base.modules.dictionary.model.controls.BaseControlModel;
import io.pelle.mango.client.base.modules.dictionary.model.controls.BigDecimalControlModel;
import io.pelle.mango.client.base.modules.dictionary.model.controls.BooleanControlModel;
import io.pelle.mango.client.base.modules.dictionary.model.controls.DateControlModel;
import io.pelle.mango.client.base.modules.dictionary.model.controls.EnumerationControlModel;
import io.pelle.mango.client.base.modules.dictionary.model.controls.FileControlModel;
import io.pelle.mango.client.base.modules.dictionary.model.controls.HierarchicalControlModel;
import io.pelle.mango.client.base.modules.dictionary.model.controls.IntegerControlModel;
import io.pelle.mango.client.base.modules.dictionary.model.controls.ReferenceControlModel;
import io.pelle.mango.client.base.modules.dictionary.model.controls.TextControlModel;
import io.pelle.mango.dsl.ModelUtil;
import io.pelle.mango.dsl.generator.client.ClientAttributeUtils;
import io.pelle.mango.dsl.generator.client.ClientTypeUtils;
import io.pelle.mango.dsl.generator.client.DatatypeUtils;
import io.pelle.mango.dsl.generator.client.dictionary.ControlUtils;
import io.pelle.mango.dsl.generator.client.dictionary.DictionaryNameUtils;
import io.pelle.mango.dsl.mango.BaseDataType;
import io.pelle.mango.dsl.mango.BaseDictionaryControl;
import io.pelle.mango.dsl.mango.BinaryDataType;
import io.pelle.mango.dsl.mango.BinaryEntityAttribute;
import io.pelle.mango.dsl.mango.BooleanDataType;
import io.pelle.mango.dsl.mango.BooleanEntityAttribute;
import io.pelle.mango.dsl.mango.DateDataType;
import io.pelle.mango.dsl.mango.DateEntityAttribute;
import io.pelle.mango.dsl.mango.DecimalDataType;
import io.pelle.mango.dsl.mango.DecimalEntityAttribute;
import io.pelle.mango.dsl.mango.Dictionary;
import io.pelle.mango.dsl.mango.DictionaryBigDecimalControl;
import io.pelle.mango.dsl.mango.DictionaryBooleanControl;
import io.pelle.mango.dsl.mango.DictionaryControl;
import io.pelle.mango.dsl.mango.DictionaryControlGroup;
import io.pelle.mango.dsl.mango.DictionaryDateControl;
import io.pelle.mango.dsl.mango.DictionaryEnumerationControl;
import io.pelle.mango.dsl.mango.DictionaryFileControl;
import io.pelle.mango.dsl.mango.DictionaryHierarchicalControl;
import io.pelle.mango.dsl.mango.DictionaryIntegerControl;
import io.pelle.mango.dsl.mango.DictionaryReferenceControl;
import io.pelle.mango.dsl.mango.DictionaryTextControl;
import io.pelle.mango.dsl.mango.EntityAttribute;
import io.pelle.mango.dsl.mango.EntityAttributeType;
import io.pelle.mango.dsl.mango.EntityDataType;
import io.pelle.mango.dsl.mango.EntityEntityAttribute;
import io.pelle.mango.dsl.mango.EnumerationAttributeType;
import io.pelle.mango.dsl.mango.EnumerationDataType;
import io.pelle.mango.dsl.mango.EnumerationEntityAttribute;
import io.pelle.mango.dsl.mango.IntegerControlInputType;
import io.pelle.mango.dsl.mango.IntegerDataType;
import io.pelle.mango.dsl.mango.IntegerEntityAttribute;
import io.pelle.mango.dsl.mango.Labels;
import io.pelle.mango.dsl.mango.LongDataType;
import io.pelle.mango.dsl.mango.LongEntityAttribute;
import io.pelle.mango.dsl.mango.MapDataType;
import io.pelle.mango.dsl.mango.MapEntityAttribute;
import io.pelle.mango.dsl.mango.StringDataType;
import io.pelle.mango.dsl.mango.StringEntityAttribute;
import java.util.Arrays;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.xbase.lib.Extension;

@SuppressWarnings("all")
public class DictionaryControls {
  @Inject
  @Extension
  private DictionaryNameUtils _dictionaryNameUtils;
  
  @Inject
  @Extension
  private DatatypeUtils _datatypeUtils;
  
  @Inject
  @Extension
  private ClientTypeUtils _clientTypeUtils;
  
  @Inject
  @Extension
  private ClientAttributeUtils _clientAttributeUtils;
  
  @Inject
  @Extension
  private ControlUtils _controlUtils;
  
  public CharSequence dictionaryControlConstant(final DictionaryControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("public ");
    CharSequence _dictionaryControlType = this.dictionaryControlType(dictionaryControl);
    _builder.append(_dictionaryControlType, "");
    _builder.append(" ");
    String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
    _builder.append(_dictionaryConstantName, "");
    _builder.append(" = new ");
    CharSequence _dictionaryControlType_1 = this.dictionaryControlType(dictionaryControl);
    _builder.append(_dictionaryControlType_1, "");
    _builder.append("(\"");
    String _controlName = ModelUtil.getControlName(dictionaryControl);
    _builder.append(_controlName, "");
    _builder.append("\", this);");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  public CharSequence dictionaryControlCommonSetters(final DictionaryControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.newLine();
    {
      boolean _hasWidth = this._controlUtils.hasWidth(dictionaryControl);
      if (_hasWidth) {
        _builder.append("// dictionary control \'");
        String _name = dictionaryControl.getName();
        _builder.append(_name, "");
        _builder.append("\' width");
        _builder.newLineIfNotEmpty();
        String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName, "");
        _builder.append(".setWidth(");
        int _width = this._controlUtils.getWidth(dictionaryControl);
        _builder.append(_width, "");
        _builder.append(");");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    {
      boolean _hasReadonly = this._controlUtils.hasReadonly(dictionaryControl);
      if (_hasReadonly) {
        _builder.append("// dictionary control \'");
        String _name_1 = dictionaryControl.getName();
        _builder.append(_name_1, "");
        _builder.append("\' is readonly");
        _builder.newLineIfNotEmpty();
        String _dictionaryConstantName_1 = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName_1, "");
        _builder.append(".setReadonly(");
        boolean _readonly = this._controlUtils.getReadonly(dictionaryControl);
        _builder.append(_readonly, "");
        _builder.append(");");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    {
      boolean _hasMandatory = this._controlUtils.hasMandatory(dictionaryControl);
      if (_hasMandatory) {
        _builder.append("// dictionary control \'");
        String _name_2 = dictionaryControl.getName();
        _builder.append(_name_2, "");
        _builder.append("\' is mandatory");
        _builder.newLineIfNotEmpty();
        String _dictionaryConstantName_2 = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName_2, "");
        _builder.append(".setMandatory(");
        boolean _mandatory = this._controlUtils.getMandatory(dictionaryControl);
        _builder.append(_mandatory, "");
        _builder.append(");");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    {
      boolean _hasEntityAttribute = this._controlUtils.hasEntityAttribute(dictionaryControl);
      if (_hasEntityAttribute) {
        _builder.newLine();
        EntityAttribute _entityAttribute = this._controlUtils.getEntityAttribute(dictionaryControl);
        String _datatypeSetters = this.datatypeSetters(dictionaryControl, _entityAttribute);
        _builder.append(_datatypeSetters, "");
        _builder.newLineIfNotEmpty();
        _builder.newLine();
        String _dictionaryConstantName_3 = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName_3, "");
        _builder.append(".setAttributePath(\"");
        EntityAttribute _entityAttribute_1 = this._controlUtils.getEntityAttribute(dictionaryControl);
        String _name_3 = _entityAttribute_1.getName();
        _builder.append(_name_3, "");
        _builder.append("\");");
        _builder.newLineIfNotEmpty();
        _builder.newLine();
        {
          BaseDictionaryControl _baseControl = dictionaryControl.getBaseControl();
          EntityAttribute _entityattribute = _baseControl.getEntityattribute();
          boolean _hasNaturalKeyAttribute = this._clientAttributeUtils.hasNaturalKeyAttribute(_entityattribute);
          if (_hasNaturalKeyAttribute) {
            _builder.append("// entity attribute \'");
            EntityAttribute _entityAttribute_2 = this._controlUtils.getEntityAttribute(dictionaryControl);
            String _name_4 = _entityAttribute_2.getName();
            _builder.append(_name_4, "");
            _builder.append("\' is natural key");
            _builder.newLineIfNotEmpty();
            String _dictionaryConstantName_4 = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
            _builder.append(_dictionaryConstantName_4, "");
            _builder.append(".setMandatory(true);");
            _builder.newLineIfNotEmpty();
          }
        }
        _builder.newLine();
      }
    }
    _builder.newLine();
    {
      boolean _hasBaseControl = this._controlUtils.hasBaseControl(dictionaryControl);
      if (_hasBaseControl) {
        BaseDictionaryControl _baseControl_1 = dictionaryControl.getBaseControl();
        Labels _labels = _baseControl_1.getLabels();
        CharSequence _dictionaryControlLabelSetters = this.dictionaryControlLabelSetters(dictionaryControl, _labels);
        _builder.append(_dictionaryControlLabelSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    return _builder;
  }
  
  public CharSequence dictionaryControlLabelSetters(final DictionaryControl dictionaryControl, final Labels labels) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.newLine();
    {
      boolean _notEquals = (!Objects.equal(labels, null));
      if (_notEquals) {
        {
          String _label = labels.getLabel();
          boolean _notEquals_1 = (!Objects.equal(_label, null));
          if (_notEquals_1) {
            _builder.append("\t");
            String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
            _builder.append(_dictionaryConstantName, "\t");
            _builder.append(".setLabel(\"");
            String _label_1 = labels.getLabel();
            _builder.append(_label_1, "\t");
            _builder.append("\");");
            _builder.newLineIfNotEmpty();
          }
        }
        _builder.append("\t");
        _builder.newLine();
        {
          String _columnLabel = labels.getColumnLabel();
          boolean _notEquals_2 = (!Objects.equal(_columnLabel, null));
          if (_notEquals_2) {
            _builder.append("\t");
            _builder.append("\t");
            String _dictionaryConstantName_1 = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
            _builder.append(_dictionaryConstantName_1, "\t\t");
            _builder.append(".setColumnLabel(\"");
            String _columnLabel_1 = labels.getColumnLabel();
            _builder.append(_columnLabel_1, "\t\t");
            _builder.append("\");");
            _builder.newLineIfNotEmpty();
          }
        }
        _builder.append("\t");
        _builder.newLine();
        {
          String _editorLabel = labels.getEditorLabel();
          boolean _notEquals_3 = (!Objects.equal(_editorLabel, null));
          if (_notEquals_3) {
            _builder.append("\t");
            _builder.append("\t");
            String _dictionaryConstantName_2 = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
            _builder.append(_dictionaryConstantName_2, "\t\t");
            _builder.append(".setEditorLabel(\"");
            String _editorLabel_1 = labels.getEditorLabel();
            _builder.append(_editorLabel_1, "\t\t");
            _builder.append("\");");
            _builder.newLineIfNotEmpty();
          }
        }
        _builder.append("\t");
        _builder.newLine();
        {
          String _filterLabel = labels.getFilterLabel();
          boolean _notEquals_4 = (!Objects.equal(_filterLabel, null));
          if (_notEquals_4) {
            _builder.append("\t");
            _builder.append("\t");
            String _dictionaryConstantName_3 = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
            _builder.append(_dictionaryConstantName_3, "\t\t");
            _builder.append(".setFilterLabel(\"");
            String _filterLabel_1 = labels.getFilterLabel();
            _builder.append(_filterLabel_1, "\t\t");
            _builder.append("\");");
            _builder.newLineIfNotEmpty();
          }
        }
      }
    }
    return _builder;
  }
  
  public CharSequence dictionaryControlClass(final DictionaryControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    return _builder;
  }
  
  public CharSequence dictionaryControlClass(final DictionaryReferenceControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("package ");
    String _packageName = this._dictionaryNameUtils.getPackageName(dictionaryControl);
    _builder.append(_packageName, "");
    _builder.append(";");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("public class ");
    String _dictionaryClassName = this._dictionaryNameUtils.dictionaryClassName(dictionaryControl);
    _builder.append(_dictionaryClassName, "");
    _builder.append(" extends ");
    CharSequence _dictionaryControlType = this.dictionaryControlType(dictionaryControl);
    _builder.append(_dictionaryControlType, "");
    _builder.append(" {");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    {
      EList _labelcontrols = dictionaryControl.getLabelcontrols();
      for(final DictionaryControl dictionaryLabelControl : _labelcontrols) {
        _builder.append("\t");
        CharSequence _dictionaryControlConstant = this.dictionaryControlConstant(dictionaryLabelControl);
        _builder.append(_dictionaryControlConstant, "\t");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    _builder.append("\t");
    _builder.append("public ");
    String _dictionaryClassName_1 = this._dictionaryNameUtils.dictionaryClassName(dictionaryControl);
    _builder.append(_dictionaryClassName_1, "\t");
    _builder.append("(de.pellepelster.myadmin.client.base.modules.dictionary.model.BaseModel parent) {");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("super(\"");
    String _controlName = ModelUtil.getControlName(dictionaryControl);
    _builder.append(_controlName, "\t\t");
    _builder.append("\", parent);");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    {
      EList _labelcontrols_1 = dictionaryControl.getLabelcontrols();
      for(final DictionaryControl dictionaryLabelControl_1 : _labelcontrols_1) {
        _builder.append("\t\t");
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(dictionaryControl);
        _builder.append(_dictionaryControlConstantSetters, "\t\t");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    {
      EList _labelcontrols_2 = dictionaryControl.getLabelcontrols();
      for(final DictionaryControl dictionaryLabelControl_2 : _labelcontrols_2) {
        _builder.append("\t\t");
        _builder.append("this.getLabelControls().add(");
        String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryLabelControl_2);
        _builder.append(_dictionaryConstantName, "\t\t");
        _builder.append(");");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    return _builder;
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = BaseControlModel.class.getName();
    _builder.append(_name, "");
    _builder.append("<");
    String _name_1 = IBaseControl.class.getName();
    _builder.append(_name_1, "");
    _builder.append(">");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected CharSequence _dictionaryControlConstantSetters(final DictionaryControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    return _builder;
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final BaseDataType baseDataType) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.newLine();
    _builder.append("// datatypeSetters control \'");
    _builder.append(dictionaryControl, "");
    _builder.append("\', base datatype \'");
    _builder.append(baseDataType, "");
    _builder.append("\'");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    {
      boolean _and = false;
      boolean _notEquals = (!Objects.equal(baseDataType, null));
      if (!_notEquals) {
        _and = false;
      } else {
        boolean _hasLabel = this._datatypeUtils.hasLabel(baseDataType);
        _and = _hasLabel;
      }
      if (_and) {
        _builder.append("// label from datatype \'");
        String _string = baseDataType.toString();
        _builder.append(_string, "");
        _builder.append("\'");
        _builder.newLineIfNotEmpty();
        String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName, "");
        _builder.append(".setLabel(\"");
        String _label = this._datatypeUtils.getLabel(baseDataType);
        _builder.append(_label, "");
        _builder.append("\");");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    {
      boolean _and_1 = false;
      boolean _notEquals_1 = (!Objects.equal(baseDataType, null));
      if (!_notEquals_1) {
        _and_1 = false;
      } else {
        boolean _hasWidth = this._datatypeUtils.hasWidth(baseDataType);
        _and_1 = _hasWidth;
      }
      if (_and_1) {
        _builder.append("// width from datatype \'");
        String _string_1 = baseDataType.toString();
        _builder.append(_string_1, "");
        _builder.append("\'");
        _builder.newLineIfNotEmpty();
        String _dictionaryConstantName_1 = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName_1, "");
        _builder.append(".setWidth(");
        int _width = this._datatypeUtils.getWidth(baseDataType);
        _builder.append(_width, "");
        _builder.append(");");
        _builder.newLineIfNotEmpty();
      }
    }
    return _builder.toString();
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final EObject entity) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("// no label to inherit here");
    _builder.newLine();
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryTextControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = TextControlModel.class.getName();
    _builder.append(_name, "");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final StringEntityAttribute entityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    StringDataType _type = entityAttribute.getType();
    BaseDataType _baseDataType = _type.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    {
      boolean _and = false;
      StringDataType _type_1 = entityAttribute.getType();
      boolean _notEquals = (!Objects.equal(_type_1, null));
      if (!_notEquals) {
        _and = false;
      } else {
        StringDataType _type_2 = entityAttribute.getType();
        int _maxLength = _type_2.getMaxLength();
        boolean _greaterThan = (_maxLength > 0);
        _and = _greaterThan;
      }
      if (_and) {
        String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName, "");
        _builder.append(".setMaxLength(");
        StringDataType _type_3 = entityAttribute.getType();
        int _maxLength_1 = _type_3.getMaxLength();
        _builder.append(_maxLength_1, "");
        _builder.append(");");
        _builder.newLineIfNotEmpty();
      }
    }
    return _builder.toString();
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryTextControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("// dictionary control \'");
    String _string = dictionaryControl.toString();
    _builder.append(_string, "");
    _builder.append("\' parent \'");
    EObject _eContainer = dictionaryControl.eContainer();
    String _string_1 = _eContainer.toString();
    _builder.append(_string_1, "");
    _builder.append("\'");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    {
      DictionaryTextControl _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryTextControl _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryIntegerControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = IntegerControlModel.class.getName();
    _builder.append(_name, "");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final IntegerEntityAttribute entityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    IntegerDataType _type = entityAttribute.getType();
    BaseDataType _baseDataType = _type.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryIntegerControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    {
      DictionaryIntegerControl _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryIntegerControl _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    IntegerControlInputType controlInputType = this._controlUtils.getIntegerControlInputType(dictionaryControl);
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    {
      boolean _notEquals_1 = (!Objects.equal(controlInputType, null));
      if (_notEquals_1) {
        String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName, "");
        _builder.append(".setControlType(io.pelle.mango.client.base.modules.dictionary.model.controls.IIntegerControlModel.CONTROL_TYPE.");
        String _string = controlInputType.toString();
        String _upperCase = _string.toUpperCase();
        _builder.append(_upperCase, "");
        _builder.append(");");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final LongEntityAttribute entityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    LongDataType _type = entityAttribute.getType();
    BaseDataType _baseDataType = _type.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final MapEntityAttribute entityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    MapDataType _type = entityAttribute.getType();
    BaseDataType _baseDataType = _type.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryBigDecimalControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = BigDecimalControlModel.class.getName();
    _builder.append(_name, "");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final DecimalEntityAttribute entityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    DecimalDataType _type = entityAttribute.getType();
    BaseDataType _baseDataType = _type.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryBigDecimalControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    {
      DictionaryBigDecimalControl _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryBigDecimalControl _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryBooleanControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = BooleanControlModel.class.getName();
    _builder.append(_name, "");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final BooleanEntityAttribute entityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    BooleanDataType _type = entityAttribute.getType();
    BaseDataType _baseDataType = _type.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryBooleanControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    {
      DictionaryBooleanControl _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryBooleanControl _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryDateControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = DateControlModel.class.getName();
    _builder.append(_name, "");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final DateEntityAttribute entityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    DateDataType _type = entityAttribute.getType();
    BaseDataType _baseDataType = _type.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryDateControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    {
      DictionaryDateControl _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryDateControl _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryEnumerationControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = EnumerationControlModel.class.getName();
    _builder.append(_name, "");
    _builder.append("<");
    String _controlType = this._controlUtils.controlType(dictionaryControl);
    _builder.append(_controlType, "");
    _builder.append(">");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final EnumerationEntityAttribute entityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    EnumerationAttributeType _type = entityAttribute.getType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _type);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final EnumerationAttributeType enumerationAttributeType) {
    StringConcatenation _builder = new StringConcatenation();
    return _builder.toString();
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final EnumerationDataType enumerationDataType) {
    StringConcatenation _builder = new StringConcatenation();
    BaseDataType _baseDataType = enumerationDataType.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryEnumerationControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    {
      DictionaryEnumerationControl _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryEnumerationControl _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    {
      String _controlType = this._controlUtils.controlType(dictionaryControl);
      boolean _notEquals_1 = (!Objects.equal(_controlType, null));
      if (_notEquals_1) {
        String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName, "");
        _builder.append(".setEnumerationName(");
        String _controlType_1 = this._controlUtils.controlType(dictionaryControl);
        _builder.append(_controlType_1, "");
        _builder.append(".class.getName());");
        _builder.newLineIfNotEmpty();
      }
    }
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryReferenceControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = ReferenceControlModel.class.getName();
    _builder.append(_name, "");
    _builder.append("<");
    EntityAttribute _entityAttribute = ModelUtil.getEntityAttribute(dictionaryControl);
    String _type = this._clientTypeUtils.getType(_entityAttribute);
    _builder.append(_type, "");
    _builder.append(">");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryReferenceControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.newLine();
    {
      DictionaryReferenceControl _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryReferenceControl _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    {
      Dictionary _dictionary = dictionaryControl.getDictionary();
      boolean _notEquals_1 = (!Objects.equal(_dictionary, null));
      if (_notEquals_1) {
        String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName, "");
        _builder.append(".setDictionaryName(\"");
        Dictionary _dictionary_1 = dictionaryControl.getDictionary();
        String _name = _dictionary_1.getName();
        _builder.append(_name, "");
        _builder.append("\");");
        _builder.newLineIfNotEmpty();
      }
    }
    return _builder.toString();
  }
  
  protected String _datatypeSetters(final DictionaryReferenceControl dictionaryControl, final EntityDataType entityDataType) {
    StringConcatenation _builder = new StringConcatenation();
    BaseDataType _baseDataType = entityDataType.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _datatypeSetters(final DictionaryReferenceControl dictionaryControl, final EntityEntityAttribute entityEntityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    EntityAttributeType _type = entityEntityAttribute.getType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _type);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryHierarchicalControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = HierarchicalControlModel.class.getName();
    _builder.append(_name, "");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryHierarchicalControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    {
      DictionaryHierarchicalControl _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryHierarchicalControl _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    {
      String _hierarchicalId = dictionaryControl.getHierarchicalId();
      boolean _notEquals_1 = (!Objects.equal(_hierarchicalId, null));
      if (_notEquals_1) {
        String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl);
        _builder.append(_dictionaryConstantName, "");
        _builder.append(".setHierarchicalId(\"");
        String _hierarchicalId_1 = dictionaryControl.getHierarchicalId();
        _builder.append(_hierarchicalId_1, "");
        _builder.append("\");");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryFileControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _name = FileControlModel.class.getName();
    _builder.append(_name, "");
    _builder.append("<");
    String _name_1 = IBaseControl.class.getName();
    _builder.append(_name_1, "");
    _builder.append(">");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _datatypeSetters(final DictionaryControl dictionaryControl, final BinaryEntityAttribute entityAttribute) {
    StringConcatenation _builder = new StringConcatenation();
    BinaryDataType _type = entityAttribute.getType();
    BaseDataType _baseDataType = _type.getBaseDataType();
    String _datatypeSetters = this.datatypeSetters(dictionaryControl, _baseDataType);
    _builder.append(_datatypeSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryFileControl dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    {
      DictionaryFileControl _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryFileControl _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  protected CharSequence _dictionaryControlType(final DictionaryControlGroup dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    String _dictionaryClassName = this._dictionaryNameUtils.dictionaryClassName(dictionaryControl);
    _builder.append(_dictionaryClassName, "");
    _builder.newLineIfNotEmpty();
    return _builder;
  }
  
  protected String _dictionaryControlConstantSetters(final DictionaryControlGroup dictionaryControl) {
    StringConcatenation _builder = new StringConcatenation();
    {
      DictionaryControlGroup _ref = dictionaryControl.getRef();
      boolean _notEquals = (!Objects.equal(_ref, null));
      if (_notEquals) {
        DictionaryControlGroup _ref_1 = dictionaryControl.getRef();
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(_ref_1);
        _builder.append(_dictionaryControlConstantSetters, "");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    CharSequence _dictionaryControlCommonSetters = this.dictionaryControlCommonSetters(dictionaryControl);
    _builder.append(_dictionaryControlCommonSetters, "");
    _builder.newLineIfNotEmpty();
    return _builder.toString();
  }
  
  public CharSequence dictionaryControlClass(final DictionaryControlGroup dictionaryControlGroup) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.newLine();
    _builder.append("\t");
    _builder.append("package ");
    String _packageName = this._dictionaryNameUtils.getPackageName(dictionaryControlGroup);
    _builder.append(_packageName, "\t");
    _builder.append(";");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("\t");
    _builder.append("public class ");
    String _dictionaryClassName = this._dictionaryNameUtils.dictionaryClassName(dictionaryControlGroup);
    _builder.append(_dictionaryClassName, "\t");
    _builder.append(" extends io.pelle.mango.client.base.modules.dictionary.model.controls.ControlGroupModel {");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    {
      EList _groupcontrols = dictionaryControlGroup.getGroupcontrols();
      for(final DictionaryControl dictionaryControl : _groupcontrols) {
        _builder.append("\t\t");
        CharSequence _dictionaryControlConstant = this.dictionaryControlConstant(dictionaryControl);
        _builder.append(_dictionaryControlConstant, "\t\t");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("public ");
    String _dictionaryClassName_1 = this._dictionaryNameUtils.dictionaryClassName(dictionaryControlGroup);
    _builder.append(_dictionaryClassName_1, "\t\t");
    _builder.append("(String name, io.pelle.mango.client.base.modules.dictionary.model.IBaseModel parent) {");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t\t");
    _builder.append("super(name, parent, ");
    boolean _mulitFilterField = this._controlUtils.mulitFilterField(dictionaryControlGroup);
    _builder.append(_mulitFilterField, "\t\t\t");
    _builder.append(");");
    _builder.newLineIfNotEmpty();
    _builder.append("\t\t\t");
    _builder.newLine();
    {
      EList _groupcontrols_1 = dictionaryControlGroup.getGroupcontrols();
      for(final DictionaryControl dictionaryControl_1 : _groupcontrols_1) {
        _builder.append("\t\t\t");
        _builder.append("this.getControls().add(");
        String _dictionaryConstantName = this._dictionaryNameUtils.dictionaryConstantName(dictionaryControl_1);
        _builder.append(_dictionaryConstantName, "\t\t\t");
        _builder.append(");");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.append("\t\t\t");
    _builder.newLine();
    {
      EList _groupcontrols_2 = dictionaryControlGroup.getGroupcontrols();
      for(final DictionaryControl dictionaryControl_2 : _groupcontrols_2) {
        _builder.append("\t\t\t");
        CharSequence _dictionaryControlConstantSetters = this.dictionaryControlConstantSetters(dictionaryControl_2);
        _builder.append(_dictionaryControlConstantSetters, "\t\t\t");
        _builder.newLineIfNotEmpty();
      }
    }
    _builder.append("\t\t\t");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    return _builder;
  }
  
  public CharSequence dictionaryControlType(final DictionaryControl dictionaryControl) {
    if (dictionaryControl instanceof DictionaryBigDecimalControl) {
      return _dictionaryControlType((DictionaryBigDecimalControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryBooleanControl) {
      return _dictionaryControlType((DictionaryBooleanControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryControlGroup) {
      return _dictionaryControlType((DictionaryControlGroup)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryDateControl) {
      return _dictionaryControlType((DictionaryDateControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryEnumerationControl) {
      return _dictionaryControlType((DictionaryEnumerationControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryFileControl) {
      return _dictionaryControlType((DictionaryFileControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryHierarchicalControl) {
      return _dictionaryControlType((DictionaryHierarchicalControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryIntegerControl) {
      return _dictionaryControlType((DictionaryIntegerControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryReferenceControl) {
      return _dictionaryControlType((DictionaryReferenceControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryTextControl) {
      return _dictionaryControlType((DictionaryTextControl)dictionaryControl);
    } else if (dictionaryControl != null) {
      return _dictionaryControlType(dictionaryControl);
    } else {
      throw new IllegalArgumentException("Unhandled parameter types: " +
        Arrays.asList(dictionaryControl).toString());
    }
  }
  
  public CharSequence dictionaryControlConstantSetters(final DictionaryControl dictionaryControl) {
    if (dictionaryControl instanceof DictionaryBigDecimalControl) {
      return _dictionaryControlConstantSetters((DictionaryBigDecimalControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryBooleanControl) {
      return _dictionaryControlConstantSetters((DictionaryBooleanControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryControlGroup) {
      return _dictionaryControlConstantSetters((DictionaryControlGroup)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryDateControl) {
      return _dictionaryControlConstantSetters((DictionaryDateControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryEnumerationControl) {
      return _dictionaryControlConstantSetters((DictionaryEnumerationControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryFileControl) {
      return _dictionaryControlConstantSetters((DictionaryFileControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryHierarchicalControl) {
      return _dictionaryControlConstantSetters((DictionaryHierarchicalControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryIntegerControl) {
      return _dictionaryControlConstantSetters((DictionaryIntegerControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryReferenceControl) {
      return _dictionaryControlConstantSetters((DictionaryReferenceControl)dictionaryControl);
    } else if (dictionaryControl instanceof DictionaryTextControl) {
      return _dictionaryControlConstantSetters((DictionaryTextControl)dictionaryControl);
    } else if (dictionaryControl != null) {
      return _dictionaryControlConstantSetters(dictionaryControl);
    } else {
      throw new IllegalArgumentException("Unhandled parameter types: " +
        Arrays.asList(dictionaryControl).toString());
    }
  }
  
  public String datatypeSetters(final DictionaryControl dictionaryControl, final EObject entityDataType) {
    if (dictionaryControl instanceof DictionaryReferenceControl
         && entityDataType instanceof EntityDataType) {
      return _datatypeSetters((DictionaryReferenceControl)dictionaryControl, (EntityDataType)entityDataType);
    } else if (dictionaryControl instanceof DictionaryReferenceControl
         && entityDataType instanceof EntityEntityAttribute) {
      return _datatypeSetters((DictionaryReferenceControl)dictionaryControl, (EntityEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof EnumerationDataType) {
      return _datatypeSetters(dictionaryControl, (EnumerationDataType)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof BinaryEntityAttribute) {
      return _datatypeSetters(dictionaryControl, (BinaryEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof BooleanEntityAttribute) {
      return _datatypeSetters(dictionaryControl, (BooleanEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof DateEntityAttribute) {
      return _datatypeSetters(dictionaryControl, (DateEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof DecimalEntityAttribute) {
      return _datatypeSetters(dictionaryControl, (DecimalEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof EnumerationEntityAttribute) {
      return _datatypeSetters(dictionaryControl, (EnumerationEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof IntegerEntityAttribute) {
      return _datatypeSetters(dictionaryControl, (IntegerEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof LongEntityAttribute) {
      return _datatypeSetters(dictionaryControl, (LongEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof MapEntityAttribute) {
      return _datatypeSetters(dictionaryControl, (MapEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof StringEntityAttribute) {
      return _datatypeSetters(dictionaryControl, (StringEntityAttribute)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof BaseDataType) {
      return _datatypeSetters(dictionaryControl, (BaseDataType)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType instanceof EnumerationAttributeType) {
      return _datatypeSetters(dictionaryControl, (EnumerationAttributeType)entityDataType);
    } else if (dictionaryControl != null
         && entityDataType != null) {
      return _datatypeSetters(dictionaryControl, entityDataType);
    } else {
      throw new IllegalArgumentException("Unhandled parameter types: " +
        Arrays.asList(dictionaryControl, entityDataType).toString());
    }
  }
}