/**
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.airavata.registry.core.entities.workspacecatalog;
import javax.persistence.*;
import java.util.List;
@Entity
@Table(name = "WORKSPACE_NSF_DEMOGRAPHIC")
public class NSFDemographicsEntity {
private String airavataInternalUserId;
private String gender;
private List<String> ethnicities;
private List<String> races;
private List<String> disabilities;
private UserProfileEntity userProfile;
@Id
@Column(name = "AIRAVATA_INTERNAL_USER_ID")
public String getAiravataInternalUserId() {
return airavataInternalUserId;
}
public void setAiravataInternalUserId(String userId) {
this.airavataInternalUserId = userId;
}
@Column(name = "GENDER")
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@ElementCollection
@CollectionTable(name="NSF_DEMOGRAPHIC_ETHNICITY", joinColumns = @JoinColumn(name="AIRAVATA_INTERNAL_USER_ID"))
public List<String> getEthnicities() {
return ethnicities;
}
public void setEthnicities(List<String> ethnicities) {
this.ethnicities = ethnicities;
}
@ElementCollection
@CollectionTable(name="NSF_DEMOGRAPHIC_RACE", joinColumns = @JoinColumn(name="AIRAVATA_INTERNAL_USER_ID"))
public List<String> getRaces() {
return races;
}
public void setRaces(List<String> races) {
this.races = races;
}
@ElementCollection
@CollectionTable(name="NSF_DEMOGRAPHIC_DISABILITY", joinColumns = @JoinColumn(name="AIRAVATA_INTERNAL_USER_ID"))
public List<String> getDisabilities() {
return disabilities;
}
public void setDisabilities(List<String> disabilities) {
this.disabilities = disabilities;
}
@OneToOne(targetEntity = UserProfileEntity.class, cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn(name = "AIRAVATA_INTERNAL_USER_ID", referencedColumnName = "AIRAVATA_INTERNAL_USER_ID")
public UserProfileEntity getUserProfile() {
return userProfile;
}
public void setUserProfile(UserProfileEntity userProfile) {
this.userProfile = userProfile;
}
}