/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.handle; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.dspace.content.DSpaceObject; import org.dspace.core.Context; import org.dspace.core.ReloadableEntity; import javax.persistence.*; /** * Database entity representation of the handle table * * @author kevinvandevelde at atmire.com */ @Entity @Table(name="handle") public class Handle implements ReloadableEntity<Integer> { @Id @Column(name="handle_id") @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="handle_id_seq") @SequenceGenerator(name="handle_id_seq", sequenceName="handle_id_seq", allocationSize = 1) private Integer id; @Column(name = "handle", unique = true) private String handle; @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "resource_id") private DSpaceObject dso; /* * {@see org.dspace.core.Constants#Constants Constants} */ @Column(name = "resource_type_id") private Integer resourceTypeId; /** * Protected constructor, create object using: * {@link org.dspace.handle.service.HandleService#createHandle(Context, DSpaceObject)} * or * {@link org.dspace.handle.service.HandleService#createHandle(Context, DSpaceObject, String)} * or * {@link org.dspace.handle.service.HandleService#createHandle(Context, DSpaceObject, String, boolean)} * */ protected Handle() { } @Override public Integer getID() { return id; } public String getHandle() { return handle; } public void setHandle(String handle) { this.handle = handle; } public void setDSpaceObject(DSpaceObject dso) { this.dso = dso; } public DSpaceObject getDSpaceObject() { return dso; } /* * @param resourceTypeId the integer constant of the DSO, see {@link org.dspace.core.Constants#Constants Constants} */ public void setResourceTypeId(Integer resourceTypeId) { this.resourceTypeId = resourceTypeId; } /* * @return the integer constant of the DSO, see {@link org.dspace.core.Constants#Constants Constants} */ public Integer getResourceTypeId() { return resourceTypeId; } @Override public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Handle handle1 = (Handle) o; return new EqualsBuilder() .append(id, handle1.id) .append(handle, handle1.handle) .append(resourceTypeId, handle1.resourceTypeId) .isEquals(); } @Override public int hashCode() { return new HashCodeBuilder(17, 37) .append(id) .append(handle) .append(resourceTypeId) .toHashCode(); } }