All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.cwcode.commands.arguments.EnumArg Maven / Gradle / Ivy

There is a newer version: 1.4.5
Show newest version
package ru.cwcode.commands.arguments;

import ru.cwcode.commands.Argument;
import ru.cwcode.commands.api.Sender;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class EnumArg extends Argument {
  private final String name;
  private Map values;
  
  public EnumArg(Enum[] values, String name) {
    this.name = name;
    this.values = Stream.of(values).collect(Collectors.toMap(Enum::name,
                                                             anEnum -> anEnum,
                                                             (o, o2) -> o,
                                                             HashMap::new));
  }
  
  @Override
  public boolean valid(String s) {
    return values.containsKey(s);
  }
  
  @Override
  public Set completions(Sender commandSender) {
    return values.keySet();
  }
  
  @Override
  public Object map() {
    return values.get(raw);
  }
  
  @Override
  public String argumentName() {
    return name;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy