AbstractProductCategory.java

package com.tradecloud.domain.item;

import com.tradecloud.common.base.PersistenceBase;
import com.tradecloud.domain.duties.*;

import javax.persistence.CascadeType;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToOne;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;

/**
 * Created by ds on 2019/01/11.
 */
@MappedSuperclass
public abstract class AbstractProductCategory extends PersistenceBase implements Iterable {
    @XmlAttribute
    private String name;

    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
    @org.hibernate.annotations.ForeignKey(name = "fk_product_schedule1part1a")
    @XmlElement(name = "Schedule1Part1A")
    private Schedule1Part1A schedule1Part1A;

    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
    @org.hibernate.annotations.ForeignKey(name = "fk_product_schedule1part2a")
    @XmlElement(name = "Schedule1Part2A")
    private Schedule1Part2A schedule1Part2A;

    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
    @org.hibernate.annotations.ForeignKey(name = "fk_product_schedule1part2b")
    @XmlElement(name = "Schedule1Part2B")
    private Schedule1Part2B schedule1Part2B;

    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
    @org.hibernate.annotations.ForeignKey(name = "fk_product_schedule2part1")
    @XmlElement(name = "Schedule2Part1")
    private Schedule2Part1 schedule2Part1;

    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
    @org.hibernate.annotations.ForeignKey(name = "fk_product_schedule3part1")
    @XmlElement(name = "Schedule3Part1")
    private Schedule3Part1 schedule3Part1;

    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
    @org.hibernate.annotations.ForeignKey(name = "fk_product_schedule4part1")
    @XmlElement(name = "Schedule4Part1")
    private Schedule4Part1 schedule4Part1;

    public Schedule1Part2A getSchedule1Part2A() {
        return schedule1Part2A;
    }

    public void setSchedule1Part2A(Schedule1Part2A schedule1Part2A) {
        this.schedule1Part2A = schedule1Part2A;
    }

    public Schedule1Part1A getSchedule1Part1A() {
        return schedule1Part1A;
    }

    public void setSchedule1Part1A(Schedule1Part1A schedule1Part1A) {
        this.schedule1Part1A = schedule1Part1A;
    }

    public Schedule1Part2B getSchedule1Part2B() {
        return schedule1Part2B;
    }

    public void setSchedule1Part2B(Schedule1Part2B schedule1Part2B) {
        this.schedule1Part2B = schedule1Part2B;
    }

    public Schedule2Part1 getSchedule2Part1() {
        return schedule2Part1;
    }

    public void setSchedule2Part1(Schedule2Part1 schedule2Part1) {
        this.schedule2Part1 = schedule2Part1;
    }

    public Schedule3Part1 getSchedule3Part1() {
        return schedule3Part1;
    }

    public void setSchedule3Part1(Schedule3Part1 schedule3Part1) {
        this.schedule3Part1 = schedule3Part1;
    }

    public Schedule4Part1 getSchedule4Part1() {
        return schedule4Part1;
    }

    public void setSchedule4Part1(Schedule4Part1 schedule4Part1) {
        this.schedule4Part1 = schedule4Part1;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    abstract public String getParentName();
}