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}