/*
* 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.ranger.entity;
/**
* Base JPA class with id, versionNumber and other common attributes
*
*/
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import javax.persistence.Column;
import javax.persistence.MappedSuperclass;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.xml.bind.annotation.XmlRootElement;
@MappedSuperclass
@XmlRootElement
public abstract class XXDBBase implements java.io.Serializable {
private static final long serialVersionUID = 1L;
public static final int CLASS_TYPE_NONE = 0;
private static final TimeZone gmtTimeZone = TimeZone.getTimeZone("GMT+0");
/**
* Date/Time creation of this user.
* <ul>
* </ul>
*
*/
@Temporal(TemporalType.TIMESTAMP)
@Column(name="CREATE_TIME" )
protected Date createTime = getUTCDate();
/**
* Date value.
* <ul>
* </ul>
*
*/
@Temporal(TemporalType.TIMESTAMP)
@Column(name="UPDATE_TIME" )
protected Date updateTime = getUTCDate();
/**
* Added by
* <ul>
* </ul>
*
*/
@Column(name="ADDED_BY_ID" )
protected Long addedByUserId;
/**
* Last updated by
* <ul>
* </ul>
*
*/
@Column(name="UPD_BY_ID" )
protected Long updatedByUserId;
/**
* Default constructor. This will set all the attributes to default value.
*/
public XXDBBase ( ) {
}
public int getMyClassType( ) {
return CLASS_TYPE_NONE;
}
public String getMyDisplayValue() {
return null;
}
/**
* This method sets the value to the member attribute <b>id</b>.
* You cannot set null to the attribute.
* @param id Value to set member attribute <b>id</b>
*/
public abstract void setId( Long id );
/**
* Returns the value for the member attribute <b>id</b>
* @return Long - value of member attribute <b>id</b>.
*/
public abstract Long getId( );
/**
* This method sets the value to the member attribute <b>createTime</b>.
* You cannot set null to the attribute.
* @param createTime Value to set member attribute <b>createTime</b>
*/
public void setCreateTime( Date createTime ) {
this.createTime = createTime;
}
/**
* Returns the value for the member attribute <b>createTime</b>
* @return Date - value of member attribute <b>createTime</b>.
*/
public Date getCreateTime( ) {
return this.createTime;
}
/**
* This method sets the value to the member attribute <b>updateTime</b>.
* You cannot set null to the attribute.
* @param updateTime Value to set member attribute <b>updateTime</b>
*/
public void setUpdateTime( Date updateTime ) {
this.updateTime = updateTime;
}
/**
* Returns the value for the member attribute <b>updateTime</b>
* @return Date - value of member attribute <b>updateTime</b>.
*/
public Date getUpdateTime( ) {
return this.updateTime;
}
/**
* This method sets the value to the member attribute <b>addedByUserId</b>.
* You cannot set null to the attribute.
* @param addedByUserId Value to set member attribute <b>addedByUserId</b>
*/
public void setAddedByUserId( Long addedByUserId ) {
this.addedByUserId = addedByUserId;
}
/**
* Returns the value for the member attribute <b>addedByUserId</b>
* @return Long - value of member attribute <b>addedByUserId</b>.
*/
public Long getAddedByUserId( ) {
return this.addedByUserId;
}
/**
* This method sets the value to the member attribute <b>updatedByUserId</b>.
* You cannot set null to the attribute.
* @param updatedByUserId Value to set member attribute <b>updatedByUserId</b>
*/
public void setUpdatedByUserId( Long updatedByUserId ) {
this.updatedByUserId = updatedByUserId;
}
/**
* Returns the value for the member attribute <b>updatedByUserId</b>
* @return Long - value of member attribute <b>updatedByUserId</b>.
*/
public Long getUpdatedByUserId( ) {
return this.updatedByUserId;
}
/**
* This return the bean content in string format
* @return formatedStr
*/
@Override
public String toString( ) {
String str = "XXDBBase={";
//`str += "id={" + id + "} ";
str += "createTime={" + createTime + "} ";
str += "updateTime={" + updateTime + "} ";
str += "addedByUserId={" + addedByUserId + "} ";
str += "updatedByUserId={" + updatedByUserId + "} ";
str += "}";
return str;
}
/**
* Checks for all attributes except referenced db objects
* @return true if all attributes match
*/
@Override
public boolean equals( Object obj) {
XXDBBase other = (XXDBBase) obj;
if ((this.createTime == null && other.createTime != null) || (this.createTime != null && !this.createTime.equals(other.createTime))) {
return false;
}
if ((this.updateTime == null && other.updateTime != null) || (this.updateTime != null && !this.updateTime.equals(other.updateTime))) {
return false;
}
if ((this.addedByUserId == null && other.addedByUserId != null) || (this.addedByUserId != null && !this.addedByUserId.equals(other.addedByUserId))) {
return false;
}
if ((this.updatedByUserId == null && other.updatedByUserId != null) || (this.updatedByUserId != null && !this.updatedByUserId.equals(other.updatedByUserId))) {
return false;
}
return true;
}
public static String getEnumName(String fieldName ) {
return null;
}
private static Date getUTCDate(){
try{
Calendar local=Calendar.getInstance();
int offset = local.getTimeZone().getOffset(local.getTimeInMillis());
GregorianCalendar utc = new GregorianCalendar(gmtTimeZone);
utc.setTimeInMillis(local.getTimeInMillis());
utc.add(Calendar.MILLISECOND, -offset);
return utc.getTime();
}catch(Exception ex){
return null;
}
}
}