package ${package}.om;


/**
 * The skeleton for this class was autogenerated by Torque on:
 *
 * [Tue Oct 25 15:50:38 CEST 2016]
 *
 * You should add additional methods to this class to meet the
 * application requirements.  This class will only be generated as
 * long as it does not already exist in the output directory.
 */

/**
 * Added Interface
 * @author gk
 *
 */
public class TurbineUserPeerImpl
    extends ${package}.om.BaseTurbineUserPeerImpl implements org.apache.fulcrum.security.torque.peer.TorqueTurbinePeer<TurbineUser>
{
    /** Serial version */
    private static final long serialVersionUID = 1477403438057L;

}
