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