/**
 * 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.dsl.entity.xtext.tests.classinheritance.dtos.services;

import org.eclipse.osbp.dsl.dto.lib.services.impl.AbstractDTOServiceWithMutablePersistence;
import org.eclipse.osbp.dsl.entity.xtext.tests.classinheritance.OneByClass;
import org.eclipse.osbp.dsl.entity.xtext.tests.classinheritance.dtos.OneByClassDto;

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