1 package net.florianschoppmann.java.reflect; 2 3 import javax.annotation.Nullable; 4 import javax.lang.model.element.Name; 5 import java.util.Objects; 6 7 final class NameImpl implements Name { 8 private final String name; 9 10 NameImpl(String name) { 11 this.name = Objects.requireNonNull(name); 12 } 13 14 @Override 15 public boolean equals(@Nullable Object otherObject) { 16 if (this == otherObject) { 17 return true; 18 } else if (otherObject == null || getClass() != otherObject.getClass()) { 19 return false; 20 } 21 22 return name.equals(((NameImpl) otherObject).name); 23 } 24 25 @Override 26 public int hashCode() { 27 return name.hashCode(); 28 } 29 30 @Override 31 public boolean contentEquals(CharSequence charSequence) { 32 return name.contentEquals(charSequence); 33 } 34 35 @Override 36 public int length() { 37 return name.length(); 38 } 39 40 @Override 41 public char charAt(int index) { 42 return name.charAt(index); 43 } 44 45 @Override 46 public CharSequence subSequence(int start, int end) { 47 return name.subSequence(start, end); 48 } 49 50 @Override 51 public String toString() { 52 return name; 53 } 54 }