/*******************************************************************************
 * Copyright (c) 1998, 2013 Oracle and/or its affiliates. All rights reserved.
 * This program and the accompanying materials are made available under the 
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
 * which accompanies this distribution. 
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at 
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * Contributors:
 *     Oracle - initial API and implementation from Oracle TopLink
 ******************************************************************************/  
package org.eclipse.persistence.testing.models.mapping;

import java.util.*;
import java.io.*;

public class JobDescription implements Serializable {
    String description;
    String title;
    float salary;
    Date startDate;
    Date endDate;

    public JobDescription() {
        setTitle("Uknown title");
        setDescription("Uknown job description.");
        setSalary((float)0.0);
    }

    public static JobDescription example1() {
        GregorianCalendar calendar = new GregorianCalendar();

        JobDescription newJob = new JobDescription();

        newJob.setTitle("Instructor");
        newJob.setDescription("Deliver course materials to clients and assist with any hands on sessions");
        newJob.setSalary((float)45000.0);
        newJob.setStartDate(calendar.getTime());
        calendar.add(Calendar.DATE, 365);// advance the date by one year
        newJob.setEndDate(calendar.getTime());

        return newJob;
    }

    public static JobDescription example2() {
        GregorianCalendar calendar = new GregorianCalendar();

        JobDescription newJob = new JobDescription();

        newJob.setTitle("Software Developer");
        newJob.setDescription("Participate in the design and development of the TopLink product");
        newJob.setSalary((float)50000.0);
        newJob.setStartDate(calendar.getTime());
        calendar.add(Calendar.DATE, 365);// advance the date by one year
        newJob.setEndDate(calendar.getTime());

        return newJob;
    }

    public static JobDescription example3() {
        GregorianCalendar calendar = new GregorianCalendar();

        JobDescription newJob = new JobDescription();

        newJob.setTitle("Systems Administrator");
        newJob.setDescription("Maintain existing networks and upkeep of workstations");
        newJob.setSalary((float)40000.0);
        newJob.setStartDate(calendar.getTime());
        calendar.add(Calendar.DATE, 365);// advance the date by one year
        newJob.setEndDate(calendar.getTime());

        return newJob;
    }

    public static JobDescription example4() {
        GregorianCalendar calendar = new GregorianCalendar();

        JobDescription newJob = new JobDescription();

        newJob.setTitle("Receptionist");
        newJob.setDescription("Answer any incoming calls and other administrative tasks");
        newJob.setSalary((float)25000.0);
        newJob.setStartDate(calendar.getTime());
        calendar.add(Calendar.DATE, 365);// advance the date by one year
        newJob.setEndDate(calendar.getTime());

        return newJob;
    }

    public static JobDescription example5() {
        GregorianCalendar calendar = new GregorianCalendar();

        JobDescription newJob = new JobDescription();

        newJob.setTitle("Janitor");
        newJob.setDescription("Clean the office");
        newJob.setSalary((float)5000.0);
        newJob.setStartDate(calendar.getTime());
        calendar.add(Calendar.DATE, 365);// advance the date by one year
        newJob.setEndDate(calendar.getTime());

        return newJob;
    }

    public String getDescription() {
        return description;
    }

    public Date getEndDate() {
        return endDate;
    }

    public float getSalary() {
        return salary;
    }

    public Date getStartDate() {
        return startDate;
    }

    public String getTitle() {
        return title;
    }

    public void setDescription(String newDescription) {
        description = newDescription;
    }

    public void setEndDate(Date newEndDate) {
        endDate = newEndDate;
    }

    public void setSalary(float newSalary) {
        salary = newSalary;
    }

    public void setStartDate(Date newStartDate) {
        startDate = newStartDate;
    }

    public void setTitle(String newTitle) {
        title = newTitle;
    }

    public String toString() {
        return "JobDescription(" + getTitle() + ")";
    }
}
