Advertisement
Guest User

MessageStyle

a guest
Jan 2nd, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.16 KB | None | 0 0
  1. package com.feeliiix.fundamental.api.message.style;
  2.  
  3. import static com.feeliiix.fundamental.api.util.PreconditionAdditions.checkNotEmpty;
  4. import static com.google.common.base.Preconditions.checkArgument;
  5. import static com.google.common.base.Preconditions.checkNotNull;
  6.  
  7. import org.spongepowered.api.CatalogType;
  8. import org.spongepowered.api.text.format.TextColor;
  9. import org.spongepowered.api.text.format.TextStyle;
  10. import org.spongepowered.api.util.ResettableBuilder;
  11.  
  12. import java.util.List;
  13. import java.util.Optional;
  14.  
  15. public class MessageStyle implements CatalogType {
  16.  
  17.     private final String id;
  18.     private final String name;
  19.     private final Optional<TextColor> prefixColor;
  20.     private final Optional<List<TextStyle>> prefixStyles;
  21.     private final Optional<TextColor> textColor;
  22.     private final Optional<List<TextStyle>> textStyles;
  23.  
  24.     public MessageStyle(String id, String name, TextColor prefixColor, List<TextStyle> prefixStyle, TextColor textColor, List<TextStyle> textStyles){
  25.         this.id = checkNotNull(id);
  26.         this.name = checkNotNull(name);
  27.         this.prefixColor = Optional.ofNullable(prefixColor);
  28.         this.prefixStyles = Optional.ofNullable(prefixStyle);
  29.         this.textColor = Optional.ofNullable(textColor);
  30.         this.textStyles = Optional.ofNullable(textStyles);
  31.  
  32.         if(this.prefixStyles.isPresent()) checkNotEmpty(this.prefixStyles.get());
  33.         if(this.textStyles.isPresent()) checkNotEmpty(this.textStyles.get());
  34.     }
  35.  
  36.     @Override
  37.     public String getId() {
  38.         return this.id;
  39.     }
  40.  
  41.     @Override
  42.     public String getName() {
  43.         return this.name;
  44.     }
  45.  
  46.     public Optional<TextColor> getPrefixColor() {
  47.         return this.prefixColor;
  48.     }
  49.  
  50.     public Optional<List<TextStyle>> getPrefixStyles() {
  51.         return this.prefixStyles;
  52.     }
  53.  
  54.     public Optional<TextColor> getTextColor() {
  55.         return this.textColor;
  56.     }
  57.  
  58.     public Optional<List<TextStyle>> getTextStyles() {
  59.         return this.textStyles;
  60.     }
  61.  
  62.     public static Builder builder() {
  63.         return new Builder();
  64.     }
  65.  
  66.     public static class Builder implements ResettableBuilder<MessageStyle, Builder> {
  67.  
  68.         private String id;
  69.         private String name;
  70.         private TextColor prefixColor;
  71.         private List<TextStyle> prefixStyles;
  72.         private TextColor textColor;
  73.         private List<TextStyle> textStyles;
  74.  
  75.         private Builder() {}
  76.  
  77.         public Builder id(String id) {
  78.             this.id = checkNotNull(id);
  79.  
  80.             return this;
  81.         }
  82.  
  83.         public Builder name(String name) {
  84.             this.name = checkNotNull(name);
  85.  
  86.             return this;
  87.         }
  88.  
  89.         public Builder prefixColor(TextColor prefixColor) {
  90.             this.prefixColor = prefixColor;
  91.  
  92.             return this;
  93.         }
  94.  
  95.         public Builder prefixStyles(List<TextStyle> prefixStyles) {
  96.             this.prefixStyles = prefixStyles;
  97.  
  98.             return this;
  99.         }
  100.  
  101.         public Builder textColor(TextColor textColor) {
  102.             this.textColor = textColor;
  103.  
  104.             return this;
  105.         }
  106.  
  107.         public Builder textStyles(List<TextStyle> textStyles) {
  108.             this.textStyles = textStyles;
  109.  
  110.             return this;
  111.         }
  112.  
  113.         @Override
  114.         public Builder from(MessageStyle messageStyle) {
  115.             this.id = messageStyle.id;
  116.             this.name = messageStyle.name;
  117.             this.prefixColor = messageStyle.prefixColor.orElse(null);
  118.             this.prefixStyles = messageStyle.prefixStyles.orElse(null);
  119.             this.textColor = messageStyle.textColor.orElse(null);
  120.             this.textStyles = messageStyle.textStyles.orElse(null);
  121.  
  122.             return this;
  123.         }
  124.  
  125.         @Override
  126.         public Builder reset() {
  127.             this.id = null;
  128.             this.name = null;
  129.             this.prefixColor = null;
  130.             this.prefixStyles = null;
  131.             this.textColor = null;
  132.             this.textStyles = null;
  133.  
  134.             return this;
  135.         }
  136.  
  137.         public MessageStyle build() {
  138.             checkArgument(this.id != null);
  139.             checkArgument(this.name != null);
  140.  
  141.             return new MessageStyle(this.id, this.name, this.prefixColor, this.prefixStyles, this.textColor, this.textStyles);
  142.         }
  143.  
  144.     }
  145.  
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement