/**
  * Methode, um die ausgewählten Attributgruppen zu übergeben.
  *
  * @param attributeGroups ausgewählte Attributgruppen
  */
 private void setAttributeGroups(List<AttributeGroup> attributeGroups) {
   _attributeGroups.clear();
   if (attributeGroups != null && attributeGroups.size() >= 1) {
     _attributeGroups.addAll(attributeGroups);
     AttributeGroup atg = (AttributeGroup) _attributeGroups.get(0);
     _atgTextField.setText(atg.getNameOrPidOrId());
     _atgTextField.setCaretPosition(0);
   } else {
     remove(_atgLabel);
     remove(_atgTextField);
     _numberOfSelectedAttributeGroups = 0;
   }
 }
 private DataDescription makeDataDescription(
     final String atg, final String asp, final short simulationVariant)
     throws MissingObjectException {
   final AttributeGroup attributeGroup = tryGetAttributeGroup(_connection, atg);
   final Aspect aspect = tryGetAspect(_connection, asp);
   if (!attributeGroup.getAspects().contains(aspect)) {
     throw new MissingObjectException(
         "Der Aspekt "
             + aspect
             + " kann nicht der Attributgruppe "
             + attributeGroup
             + " zugeordnet werden.");
   }
   return new DataDescription(attributeGroup, aspect, simulationVariant);
 }
 /**
  * Liefert einen Hash-Code für das Objekt. Implementierung hält sich an die Ratschläge in "Bloch,
  * Joshua: Effective Java".
  *
  * @return int den Hash-Code des Objekts
  */
 public int hashCode() {
   int result = 17;
   if (_attributeGroup != null) result = 37 * result + _attributeGroup.hashCode();
   if (_aspect != null) result = 37 * result + _aspect.hashCode();
   result = 37 * result + (int) getSimulationVariant();
   return result;
 }
 /**
  * Liefert eine textuelle Beschreibung dieses Objekts zurück. Das genaue Format ist nicht
  * festgelegt und kann sich ändern.
  *
  * @return Beschreibung dieses Objekts.
  */
 public String toString() {
   return "DataDescription{"
       + (_attributeGroup == null ? "-" : _attributeGroup.getPid())
       + ", "
       + (_aspect == null ? "-" : _aspect.getPid())
       + ", "
       + _simulationVariant
       + "}";
 }
 /**
  * Liest alle Konfigurationsdaten dieses Objekts
  *
  * @return Konfigurationsdaten
  * @throws MissingObjectException Falls ein Objekt fehlt (entweder das Systemobjekt, oder die
  *     Attributgruppe oder der Aspekt)
  */
 public Map<PidAttributeGroupUsage, KExDaVAttributeGroupData> getAllConfigurationData()
     throws MissingObjectException {
   final SystemObject wrappedObject = getWrappedObjectOrThrowException();
   final Map<PidAttributeGroupUsage, KExDaVAttributeGroupData> result =
       new HashMap<PidAttributeGroupUsage, KExDaVAttributeGroupData>();
   final List<AttributeGroup> attributeGroups = wrappedObject.getType().getAttributeGroups();
   for (final AttributeGroup attributeGroup : attributeGroups) {
     final Collection<Aspect> aspects = attributeGroup.getAspects();
     for (final Aspect aspect : aspects) {
       final Data data = wrappedObject.getConfigurationData(attributeGroup, aspect);
       if (data != null) {
         result.put(
             new PidAttributeGroupUsage(attributeGroup.getPid(), aspect.getPid()),
             new KExDaVAttributeGroupData(data, _manager));
       }
     }
   }
   return result;
 }
  /**
   * Vergleicht die Datenbeschreibung mit einer anderen Datenbeschreibung. Zwei Datenbeschreibungen
   * sind gleich, wenn die Attributgruppen, die Aspekte und die Simulationsvarianten gleich sind.
   *
   * @param other Andere Datenbeschreibung mit der diese Datenbeschreibung verglichen werden soll.
   * @return <code>true</code>, wenn die Datenbeschreibungen gleich sind, sonst <code>false</code>.
   */
  public final boolean equals(Object other) {
    if (this == other) return true;

    if (!(other instanceof DataDescription)) {
      return false;
    }
    DataDescription o = (DataDescription) other;

    return (_attributeGroup == null
            ? o._attributeGroup == null
            : _attributeGroup.equals(o._attributeGroup))
        && (_aspect == null ? o._aspect == null : _aspect.equals(o._aspect))
        && (o.getSimulationVariant() == getSimulationVariant());
  }