/**
*
*/
package net.agef.jobexchange.domain;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Collection;
import java.util.TreeSet;
import javax.persistence.Entity;
import javax.persistence.OneToMany;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.Store;
/**
* @author Administrator
*
*/
@Entity
@Indexed
public class DataProvider extends AbstractEntity{
/**
*
*/
private static final long serialVersionUID = 9030099521676885536L;
private Collection<JobImpl> relatedJobOffers = new TreeSet<JobImpl>();
private Collection<User> relatedUsers = new TreeSet<User>();
@Field(index=Index.TOKENIZED, store=Store.NO)
private String providerName;
private String providerId;
private String[] providerIP;
@Inject
public DataProvider(){
}
public DataProvider(String providerName){
this.providerName = providerName;
try {
MessageDigest sha = MessageDigest.getInstance("SHA-256");
sha.update((providerName+"_JobExchangeProvider").getBytes());
providerId = sha.digest().toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
public DataProvider(String providerName, String[] providerIP){
this.providerName = providerName;
try {
MessageDigest sha = MessageDigest.getInstance("SHA-256");
sha.update((providerName+"_JobExchangeProvider").getBytes());
providerId = sha.digest().toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
this.providerIP = providerIP;
}
/**
* @return the relatedJobOffers
*/
@OneToMany(mappedBy="dataProvider")
public Collection<JobImpl> getRelatedJobOffers() {
return relatedJobOffers;
}
/**
* @param relatedJobOffers the relatedJobOffers to set
*/
public void setRelatedJobOffers(Collection<JobImpl> relatedJobOffers) {
this.relatedJobOffers = relatedJobOffers;
}
/**
* @return the relatedUsers
*/
@OneToMany(mappedBy="dataProvider")
public Collection<User> getRelatedUsers() {
return relatedUsers;
}
/**
* @param relatedUsers the relatedUsers to set
*/
public void setRelatedUsers(Collection<User> relatedUsers) {
this.relatedUsers = relatedUsers;
}
/**
* @return the providerName
*/
public String getProviderName() {
return providerName;
}
/**
* @param providerName the providerName to set
*/
public void setProviderName(String providerName) {
this.providerName = providerName;
}
/**
* @return the providerId
*/
public String getProviderId() {
return providerId;
}
/**
* @param providerId the providerId to set
*/
public void setProviderId(String providerId) {
this.providerId = providerId;
}
/**
* @return the providerIP
*/
public String[] getProviderIP() {
return providerIP;
}
/**
* @param providerIP the providerIP to set
*/
public void setProviderIP(String[] providerIP) {
this.providerIP = providerIP;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
DataProvider other = (DataProvider) obj;
if (providerName != other.providerName)
return false;
if (providerId != other.providerId)
return false;
return true;
}
}