Brian,

That looks quite useful. We can give it a try.

Cheers,

Lina

> On May 24, 2018, at 7:02 PM, Kalyan Kumar Kalvagadda <[email protected]> 
> wrote:
> 
> Brian,
> 
> It will be helpful. I'm in the favor of it.
> 
> 
> *Thanks,Kalyan Kumar Kalvagadda* | Software Engineer
> t. (469) 279- <0000000000>5732
> cloudera.com <https://www.cloudera.com>
> 
> [image: Cloudera] <https://www.cloudera.com/>
> 
> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: Cloudera
> on LinkedIn] <https://www.linkedin.com/company/cloudera>
> ------------------------------
> 
>> On Thu, May 24, 2018 at 2:54 PM, Brian Towles <[email protected]> wrote:
>> 
>> Howdy all,
>> 
>> I was wondering what the teams thoughts are on using Lombok?
>> 
>> https://projectlombok.org/
>> 
>> Lombok is a tool that uses annotations at *compile time* to dynamically
>> generate the boilerplate code for things like getters, setters, basic
>> constructors, toString, equals, etc...
>> There are no actual code changes to the source, so its not a traditional
>> generator.  It uses the internal
>> To me it has been a very helpful time saver for coding and maintenance and
>> it allows for us to avoid missing things.
>> 
>> A good look at how it works in IntelliJ and Eclipse is here:
>> https://www.javacodegeeks.com/2016/06/lombok-compile-time-
>> java-annotation-preprocessor-minimize-code-size.html
>> 
>> But as a quick example of using this for a very simple class and a single
>> @Data annotation takes:
>> 
>> package org.apache.sentry;
>> 
>> import lombok.Data;
>> 
>> @Data
>> public class SimpleBean {
>>  private final String name;
>>  private int age;
>>  private double score;
>>  private String[] tags;
>> }
>> 
>> and turn it effectively into
>> 
>> package org.apache.sentry;
>> 
>> public class SimpleBean {
>>  private final String name;
>>  private int age;
>>  private double score;
>>  private String[] tags;
>> 
>>  @java.beans.ConstructorProperties({"name"})
>>  public SimpleBean(String name) {
>>    this.name = name;
>>  }
>> 
>>  public String getName() {
>>    return this.name;
>>  }
>> 
>>  public int getAge() {
>>    return this.age;
>>  }
>> 
>>  public double getScore() {
>>    return this.score;
>>  }
>> 
>>  public String[] getTags() {
>>    return this.tags;
>>  }
>> 
>>  public void setAge(int age) {
>>    this.age = age;
>>  }
>> 
>>  public void setScore(double score) {
>>    this.score = score;
>>  }
>> 
>>  public void setTags(String[] tags) {
>>    this.tags = tags;
>>  }
>> 
>>  public boolean equals(Object o) {
>>    if (o == this) {
>>      return true;
>>    }
>>    if (!(o instanceof SimpleBean)) {
>>      return false;
>>    }
>>    final SimpleBean other = (SimpleBean) o;
>>    if (!other.canEqual((Object) this)) {
>>      return false;
>>    }
>>    final Object this$name = this.getName();
>>    final Object other$name = other.getName();
>>    if (this$name == null ? other$name != null :
>> !this$name.equals(other$name)) {
>>      return false;
>>    }
>>    if (this.getAge() != other.getAge()) {
>>      return false;
>>    }
>>    if (Double.compare(this.getScore(), other.getScore()) != 0) {
>>      return false;
>>    }
>>    if (!java.util.Arrays.deepEquals(this.getTags(), other.getTags())) {
>>      return false;
>>    }
>>    return true;
>>  }
>> 
>>  public int hashCode() {
>>    final int PRIME = 59;
>>    int result = 1;
>>    final Object $name = this.getName();
>>    result = result * PRIME + ($name == null ? 43 : $name.hashCode());
>>    result = result * PRIME + this.getAge();
>>    final long $score = Double.doubleToLongBits(this.getScore());
>>    result = result * PRIME + (int) ($score >>> 32 ^ $score);
>>    result = result * PRIME + java.util.Arrays.deepHashCode(
>> this.getTags());
>>    return result;
>>  }
>> 
>>  protected boolean canEqual(Object other) {
>>    return other instanceof SimpleBean;
>>  }
>> 
>>  public String toString() {
>>    return "SimpleBean(name=" + this.getName() + ", age=" +
>> this.getAge() + ", score=" + this
>>        .getScore() + ", tags=" +
>> java.util.Arrays.deepToString(this.getTags()) + ")";
>>  }
>> }
>> 
>> 
>> There are more helper functions in the library for things like Builders,
>> and Synchronized.
>> 
>> What do you guys think about using this in Sentry?
>> 
>> -=Brian
>> 
>> --
>> *Brian Towles* | Software Engineer
>> t. (512) 415- <0000000000>8105 e. [email protected] <[email protected]>
>> cloudera.com <http://www.cloudera.com/>
>> 
>> [image: Cloudera] <http://www.cloudera.com/>
>> 
>> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
>> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: Cloudera
>> on LinkedIn] <https://www.linkedin.com/company/cloudera>
>> ------------------------------
>> 

Reply via email to