package net.rrm.ehour.backup.common; import net.rrm.ehour.domain.DomainObject; import java.io.Serializable; public class BackupEntityType implements Comparable<BackupEntityType>, Serializable { private String parentName; private Class<? extends DomainObject<? extends Serializable, ?>> domainObjectClass; private BackupRowProcessor processor; private String name; private int order; public BackupEntityType(String name, int order) { this(null, name, name + "S", order); } public BackupEntityType(Class<? extends DomainObject<? extends Serializable, ?>> domainObjectClass, String name, int order) { this(domainObjectClass, name, name + "S", order); } public BackupEntityType(Class<? extends DomainObject<? extends Serializable, ?>> domainObjectClass, String name, String parentName, int order) { this(domainObjectClass, name, parentName, null, order); } public BackupEntityType(Class<? extends DomainObject<? extends Serializable, ?>> domainObjectClass, String name, String parentName, BackupRowProcessor processor, int order) { this.domainObjectClass = domainObjectClass; this.name = name; this.parentName = parentName; this.processor = processor; this.order = order; } public String getParentName() { return parentName; } public Class<? extends DomainObject<? extends Serializable, ?>> getDomainObjectClass() { return domainObjectClass; } public BackupRowProcessor getProcessor() { return processor; } public String name() { return name; } public int getOrder() { return order; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; BackupEntityType that = (BackupEntityType) o; if (domainObjectClass != null ? !domainObjectClass.equals(that.getDomainObjectClass()) : that.getDomainObjectClass() != null) return false; if (name != null ? !name.equals(that.name()) : that.name() != null) return false; if (parentName != null ? !parentName.equals(that.getParentName()) : that.getParentName() != null) return false; if (processor != null ? !processor.equals(that.getProcessor()) : that.getProcessor() != null) return false; return true; } @Override public int hashCode() { int result = parentName != null ? parentName.hashCode() : 0; result = 31 * result + (domainObjectClass != null ? domainObjectClass.hashCode() : 0); result = 31 * result + (processor != null ? processor.hashCode() : 0); result = 31 * result + (name != null ? name.hashCode() : 0); return result; } @Override public int compareTo(BackupEntityType o) { return o.getOrder() - order; } }