package dst.ass1.jpa.model.impl;

import dst.ass1.jpa.model.IAddress;
import dst.ass1.jpa.model.ICourse;
import dst.ass1.jpa.model.ICoursePlatform;
import dst.ass1.jpa.model.IEnrollment;
import dst.ass1.jpa.model.IEnrollmentKey;
import dst.ass1.jpa.model.ILecturer;
import dst.ass1.jpa.model.ILesson;
import dst.ass1.jpa.model.IMaterial;
import dst.ass1.jpa.model.IMaterialServer;
import dst.ass1.jpa.model.IMembership;
import dst.ass1.jpa.model.IMetadata;
import dst.ass1.jpa.model.IModelFactory;
import dst.ass1.jpa.model.IParticipant;

/**
 * Creates new instances of your model implementations.
 */
public class ModelFactory implements IModelFactory {

    @Override
    public IAddress createAddress() {
        return new Address();
    }

    @Override
    public ICourse createCourse() {
        return new Course();
    }

    @Override
    public ICoursePlatform createCoursePlatform() {
        return new CoursePlatform();
    }

    @Override
    public IEnrollment createEnrollment() {
        return new Enrollment();
    }

    @Override
    public IEnrollmentKey createEnrollmentKey() {
        return new EnrollmentKey();
    }

    @Override
    public ILecturer createLecturer() {
        return new Lecturer();
    }

    @Override
    public ILesson createLesson() {
        return new Lesson();
    }

    @Override
    public IMaterial createMaterial() {
        return new Material();
    }

    @Override
    public IMaterialServer createMaterialServer() {
        return new MaterialServer();
    }

    @Override
    public IMembership createMembership() {
        return new Membership();
    }

    @Override
    public IMetadata createMetadata() {
        return new Metadata();
    }

    @Override
    public IModelFactory createModelFactory() {
        return new ModelFactory();
    }

    @Override
    public IParticipant createParticipant() {
        return new Participant();
    }
}
