/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package edu.harvard.iq.dataverse.worldmapauth; import java.sql.Timestamp; import java.util.Date; import java.util.logging.Logger; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.Table; /** * * @author raprasad */ @Entity @Table(name="worldmapauth_tokentype", indexes = {@Index(name = "application_name", columnList="name", unique = true)}) public class TokenApplicationType implements java.io.Serializable { private static final Logger logger = Logger.getLogger(TokenApplicationType.class.getCanonicalName()); public static final String DEFAULT_GEOCONNECT_APPLICATION_NAME = "GEOCONNECT"; public static final int DEFAULT_TOKEN_TIME_LIMIT_MINUTES = 30; public static final String LOCAL_DEV_MAPIT_LINK = "http://127.0.0.1:8070/shapefile/map-it"; // local GeoConnect public static final String DEV_MAPIT_LINK = "http://geoconnect.datascience.iq.harvard.edu/shapefile/map-it"; // dev GeoConnect @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable=false) private String name; private String contactEmail; @Column(nullable=true) private String hostname; @Column(nullable=true) private String ipAddress; @Column(nullable=false) private String mapitLink; //api_permissions = models.ManyToManyField(APIPermission, blank=True, null=True) @Column(nullable=false, name="timeLimitMinutes", columnDefinition="int default 30") private int timeLimitMinutes;// = models.IntegerField(default=30, help_text='in minutes') @Column(nullable=false, name="timeLimitSeconds", columnDefinition="bigint default 1800") private long timeLimitSeconds; @Column(nullable=false) private String md5; @Column(nullable=false) private Timestamp created; @Column(nullable=false) private Timestamp modified; public TokenApplicationType(){ this.name = DEFAULT_GEOCONNECT_APPLICATION_NAME; this.timeLimitMinutes = DEFAULT_TOKEN_TIME_LIMIT_MINUTES; this.setCreated(); this.setModified(); } /** * Get property id. * @return Long, value of property id. */ public Long getId() { return this.id; } /** * Set property id. * @param id new value of property id. */ public void setId(Long id) { this.id = id; } /** * Get property name. * @return String, value of property name. */ public String getName() { return this.name; } /** * Set property name. * @param name new value of property name. */ public void setName(String name) { this.name = name; } /** * Get property contactEmail. * @return String, value of property contactEmail. */ public String getContactEmail() { return this.contactEmail; } /** * Set property contactEmail. * @param contactEmail new value of property contactEmail. */ public void setContactEmail(String contactEmail) { this.contactEmail = contactEmail; } /** * Get property hostname. * @return String, value of property hostname. */ public String getHostname() { return this.hostname; } /** * Set property hostname. * @param hostname new value of property hostname. */ public void setHostname(String hostname) { this.hostname = hostname; } /** * Get property ipAddress. * @return String, value of property ipAddress. */ public String getIpAddress() { return this.ipAddress; } /** * Set property ipAddress. * @param ipAddress new value of property ipAddress. */ public void setIpAddress(String ipAddress) { this.ipAddress = ipAddress; } /** * Get property mapitLink. * @return String, value of property mapitLink. */ public String getMapitLink() { return this.mapitLink; } /** * Set property mapitLink. * @param mapitLink new value of property mapitLink. */ public void setMapitLink(String mapitLink) { this.mapitLink = mapitLink; } /** * Get property timeLimitMinutes. * @return int, value of property timeLimitMinutes. */ public int getTimeLimitMinutes() { return this.timeLimitMinutes; } /** * Set property timeLimitMinutes. * @param timeLimitMinutes new value of property timeLimitMinutes. Also sets timeLimitSeconds */ public void setTimeLimitMinutes(int timeLimitMinutes) { if (timeLimitMinutes < 1){ logger.warning("Cannot set Token time limit to less than 1 minute"); return; } this.timeLimitMinutes = timeLimitMinutes; this.timeLimitSeconds = timeLimitMinutes * 60; } /** * Get property timeLimitSeconds. * @return long, value of property timeLimitSeconds. */ public long getTimeLimitSeconds() { return this.timeLimitSeconds; } /** * Get property md5. * @return String, value of property md5. */ public String getMd5() { return this.md5; } /** * Set property md5. * @param md5 new value of property md5. */ public void setMd5(String md5) { this.md5 = md5; } /** * Get property modified. * @return Timestamp, value of property modified. */ public Timestamp getModified() { return this.modified; } /** * Set property modified. */ public void setModified() { this.modified = new Timestamp(new Date().getTime()); } /** * Get property created. * @return Timestamp, value of property created. */ public Timestamp getCreated() { return this.created; } /** * Set property created. */ public void setCreated() { this.created = new Timestamp(new Date().getTime()); } @Override public String toString() { return "edu.harvard.iq.dataverse.worldmapauth.TokenApplicationType[id=" + this.id + "]"; //return "WorldMap Layer: " + this.layerName + " for DataFile: " + this.dataFile.toString(); } }