/**
 * 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.TwoBySubclass;
import org.eclipse.osbp.dsl.entity.xtext.tests.classinheritance.dtos.TwoBySubclassDto;

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