package oop.Enumeration;
import java.util.EnumSet;

public enum EnumMethods {
	MONTAG, DIENSTAG, MITTWOCH, DONNERSTAG, FREITAG, SAMSTAG, SONNTAG;
	
	
	
	public static void main(String[] args) {
		// gibt mir die Index meiner Konstante zurück
		System.out.println(EnumMethods.DIENSTAG.ordinal());
		
		//vergleicht zwei enum-Konstanten basierend auf ihrer Reihenfolge
		System.out.println(EnumMethods.DIENSTAG.compareTo(EnumMethods.DONNERSTAG));
		
		// gibt true oder false zurück 
		System.out.println(EnumMethods.DIENSTAG.toString() == "DIENSTAG");
		
		// gibt true oder false zurück 
		System.out.println(EnumMethods.DIENSTAG.name() == "DIENSTAG");
		
		// gibt der Name der Kosntant zurück
		System.out.println(EnumMethods.valueOf("DONNERSTAG"));
		
		// gibt mir alle Konstante zurück
		for (EnumMethods test: EnumMethods.values()) {
			System.out.print(test + " ");
			if (test == EnumMethods.DIENSTAG)
				System.out.print(EnumMethods.values() + " ");
		}
		System.out.println(EnumMethods.values()[0] + "Einzelene Konstant");
		
		System.out.println();
		
		/*
		 * Enumset::
		 */
		
		// gibt alle Werte die enums aus
		EnumSet<EnumMethods> days = EnumSet.allOf(EnumMethods.class);
		System.out.println(days);
		
		// gibt nur Werte ,die ich eingebe
		EnumSet<EnumMethods> day = EnumSet.of(EnumMethods.DIENSTAG, EnumMethods.FREITAG);
		System.out.println(day);
		
		// gibt nur einmal Diesntag aus!
		EnumSet<EnumMethods> day1 = EnumSet.of(EnumMethods.DIENSTAG, EnumMethods.DIENSTAG);
		System.out.println(day);
		
		// gibt mir von Konstante to Kosntnate zurück!
		EnumSet<EnumMethods> range = EnumSet.range(EnumMethods.DIENSTAG, EnumMethods.FREITAG);
		System.out.println(range);
		
		
		EnumSet<EnumMethods> noneOf = EnumSet.noneOf(EnumMethods.class);
		noneOf.add(DIENSTAG);
		noneOf.addAll(noneOf);
		noneOf.remove(DIENSTAG);
		noneOf.removeAll(noneOf);
		System.out.println(noneOf);
	
	}

}
