/**
   * @ejb.interface-method
   * @ejb.transaction type="Required"
   */
  public ValueObject fill(ValueObject valueObject) throws LocalException {
    List list = new CompressedSerializedList();
    ValueObject returnValue = null;
    try {
      if (valueObject instanceof SpecialRateValue) {
        SpecialRateValue object = new SpecialRateValue((SpecialRateValue) valueObject);

        if (object.getId() == null) {
          throw new LocalException("Could not fill object, because primary key is null: " + object);
        }
        SpecialRateLineManagerLocal srlm =
            (SpecialRateLineManagerLocal) SpecialRateLineManagerUtil.getLocalHome().create();
        Collection col =
            SpecialRateLineUtil.getLocalHome().findBySpecialRateId(object.getId().longValue());
        for (Iterator iter = col.iterator(); iter.hasNext(); ) {
          SpecialRateLineLocal element = (SpecialRateLineLocal) iter.next();
          list.add(srlm.fill(element.getSpecialRateLineValue()));
        }
        object.fillSpecialRateLines(list);
        returnValue = object;

      } else {
        // others
        throw new LocalException(
            "Tried to fill an Unsupported valueObject-type: " + valueObject.getClass());
      }
    } catch (NamingException e) {
      throw new LocalException("NamingException while filling: " + valueObject, e);
    } catch (FinderException e) {
      throw new LocalException("FinderException while filling: " + valueObject, e);
    } catch (CreateException e) {
      throw new LocalException("FinderException while filling: " + valueObject, e);
    }
    return returnValue;
  }