001package ca.uhn.fhir.jpa.model.entity; 002 003/*- 004 * #%L 005 * HAPI FHIR JPA Model 006 * %% 007 * Copyright (C) 2014 - 2022 Smile CDR, Inc. 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023import ca.uhn.fhir.context.FhirVersionEnum; 024import org.apache.commons.lang3.builder.ToStringBuilder; 025import org.apache.commons.lang3.builder.ToStringStyle; 026 027import javax.persistence.Column; 028import javax.persistence.Entity; 029import javax.persistence.EnumType; 030import javax.persistence.Enumerated; 031import javax.persistence.ForeignKey; 032import javax.persistence.GeneratedValue; 033import javax.persistence.GenerationType; 034import javax.persistence.Id; 035import javax.persistence.Index; 036import javax.persistence.JoinColumn; 037import javax.persistence.ManyToOne; 038import javax.persistence.OneToOne; 039import javax.persistence.SequenceGenerator; 040import javax.persistence.Table; 041import javax.persistence.Temporal; 042import javax.persistence.TemporalType; 043import javax.persistence.Version; 044import java.util.Date; 045 046@Entity() 047@Table(name = "NPM_PACKAGE_VER_RES", uniqueConstraints = { 048}, indexes = { 049 @Index(name = "IDX_PACKVERRES_URL", columnList = "CANONICAL_URL") 050}) 051public class NpmPackageVersionResourceEntity { 052 053 @Id 054 @SequenceGenerator(name = "SEQ_NPM_PACKVERRES", sequenceName = "SEQ_NPM_PACKVERRES") 055 @GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQ_NPM_PACKVERRES") 056 @Column(name = "PID") 057 private Long myId; 058 @ManyToOne 059 @JoinColumn(name = "PACKVER_PID", referencedColumnName = "PID", foreignKey = @ForeignKey(name = "FK_NPM_PACKVERRES_PACKVER"), nullable = false) 060 private NpmPackageVersionEntity myPackageVersion; 061 @OneToOne 062 @JoinColumn(name = "BINARY_RES_ID", referencedColumnName = "RES_ID", nullable = false, foreignKey = @ForeignKey(name = "FK_NPM_PKVR_RESID")) 063 private ResourceTable myResourceBinary; 064 @Column(name = "FILE_DIR", length = 200) 065 private String myDirectory; 066 @Column(name = "FILE_NAME", length = 200) 067 private String myFilename; 068 @Column(name = "RES_TYPE", length = ResourceTable.RESTYPE_LEN, nullable = false) 069 private String myResourceType; 070 @Column(name = "CANONICAL_URL", length = 200) 071 private String myCanonicalUrl; 072 @Column(name = "CANONICAL_VERSION", length = 200) 073 private String myCanonicalVersion; 074 @Enumerated(EnumType.STRING) 075 @Column(name = "FHIR_VERSION", length = NpmPackageVersionEntity.FHIR_VERSION_LENGTH, nullable = false) 076 private FhirVersionEnum myFhirVersion; 077 @Column(name = "FHIR_VERSION_ID", length = NpmPackageVersionEntity.FHIR_VERSION_LENGTH, nullable = false) 078 private String myFhirVersionId; 079 @Column(name = "RES_SIZE_BYTES", nullable = false) 080 private long myResSizeBytes; 081 @Temporal(TemporalType.TIMESTAMP) 082 @Version 083 @Column(name = "UPDATED_TIME", nullable = false) 084 private Date myVersion; 085 086 public long getResSizeBytes() { 087 return myResSizeBytes; 088 } 089 090 public void setResSizeBytes(long theResSizeBytes) { 091 myResSizeBytes = theResSizeBytes; 092 } 093 094 public String getCanonicalVersion() { 095 return myCanonicalVersion; 096 } 097 098 public void setCanonicalVersion(String theCanonicalVersion) { 099 myCanonicalVersion = theCanonicalVersion; 100 } 101 102 public ResourceTable getResourceBinary() { 103 return myResourceBinary; 104 } 105 106 public void setResourceBinary(ResourceTable theResourceBinary) { 107 myResourceBinary = theResourceBinary; 108 } 109 110 public String getFhirVersionId() { 111 return myFhirVersionId; 112 } 113 114 public void setFhirVersionId(String theFhirVersionId) { 115 myFhirVersionId = theFhirVersionId; 116 } 117 118 public FhirVersionEnum getFhirVersion() { 119 return myFhirVersion; 120 } 121 122 public void setFhirVersion(FhirVersionEnum theFhirVersion) { 123 myFhirVersion = theFhirVersion; 124 } 125 126 public void setPackageVersion(NpmPackageVersionEntity thePackageVersion) { 127 myPackageVersion = thePackageVersion; 128 } 129 130 public String getDirectory() { 131 return myDirectory; 132 } 133 134 public void setDirectory(String theDirectory) { 135 myDirectory = theDirectory; 136 } 137 138 public String getFilename() { 139 return myFilename; 140 } 141 142 public void setFilename(String theFilename) { 143 myFilename = theFilename; 144 } 145 146 public String getResourceType() { 147 return myResourceType; 148 } 149 150 public void setResourceType(String theResourceType) { 151 myResourceType = theResourceType; 152 } 153 154 public String getCanonicalUrl() { 155 return myCanonicalUrl; 156 } 157 158 public void setCanonicalUrl(String theCanonicalUrl) { 159 myCanonicalUrl = theCanonicalUrl; 160 } 161 162 @Override 163 public String toString() { 164 165 return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE) 166 .append("myId", myId) 167 .append("myCanonicalUrl", myCanonicalUrl) 168 .append("myCanonicalVersion", myCanonicalVersion) 169 .append("myResourceType", myResourceType) 170 .append("myDirectory", myDirectory) 171 .append("myFilename", myFilename) 172 .append("myPackageVersion", myPackageVersion) 173 .append("myResSizeBytes", myResSizeBytes) 174 .append("myVersion", myVersion) 175 .toString(); 176 } 177 178}