/**
 * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *         Florian Pirchner - Initial implementation
 */
package org.eclipse.osbp.entitydsl.documentation.common.dtos.services;

import org.eclipse.osbp.dsl.dto.lib.services.impl.AbstractDTOServiceWithMutablePersistence;
import org.eclipse.osbp.entitydsl.documentation.common.ABar;
import org.eclipse.osbp.entitydsl.documentation.common.dtos.ABarDto;

@SuppressWarnings("all")
public class ABarService extends AbstractDTOServiceWithMutablePersistence<ABarDto, ABar> {
  public ABarService() {
    // set the default persistence ID
    setPersistenceId("TBD");
  }
  
  public Class<ABarDto> getDtoClass() {
    return ABarDto.class;
  }
  
  public Class<ABar> getEntityClass() {
    return ABar.class;
  }
  
  public Object getId(final ABarDto dto) {
    return dto.getId();
  }
}
