Guest User

Untitled

a guest
Mar 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. import com.squareup.javapoet.AnnotationSpec;
  2. import com.squareup.javapoet.ClassName;
  3. import com.squareup.javapoet.CodeBlock;
  4. import com.squareup.javapoet.TypeSpec;
  5. import java.text.DateFormat;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. import java.util.Locale;
  9. import java.util.TimeZone;
  10. import javax.lang.model.SourceVersion;
  11. import javax.lang.model.element.TypeElement;
  12. import javax.lang.model.util.Elements;
  13.  
  14. public final class TypeNames {
  15. public static TypeSpec.Builder maybeAddGeneratedAnnotation(TypeSpec.Builder builder,
  16. Elements elements, SourceVersion sourceVersion, CodeBlock generatorName, Date date,
  17. CodeBlock comments) {
  18. if (elements == null) {
  19. throw new NullPointerException("elements == null");
  20. }
  21. if (sourceVersion == null) {
  22. throw new NullPointerException("sourceVersion == null");
  23. }
  24. if (generatorName == null) {
  25. throw new NullPointerException("generatorName == null");
  26. }
  27. String generatedName = sourceVersion.compareTo(SourceVersion.RELEASE_8) > 0
  28. ? "javax.annotation.processing.Generated" : "javax.annotation.Generated";
  29. TypeElement typeElement = elements.getTypeElement(generatedName);
  30.  
  31. if (typeElement != null) {
  32. AnnotationSpec.Builder annotationBuilder = AnnotationSpec.builder(ClassName.get(typeElement))
  33. .addMember("value", generatorName);
  34. if (date != null) {
  35. DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
  36. dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
  37. annotationBuilder.addMember("date", "$S", dateFormat.format(date));
  38. }
  39. if (comments != null) {
  40. annotationBuilder.addMember("comments", comments);
  41. }
  42. builder.addAnnotation(annotationBuilder.build());
  43. }
  44. return builder;
  45. }
  46. }
Add Comment
Please, Sign In to add comment