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

org.unlaxer.base.Kind Maven / Gradle / Ivy

package org.unlaxer.base;

import java.util.HashMap;
import java.util.Map;

public class Kind extends Specifier{

		private static final long serialVersionUID = 3434126976077675934L;

		public Kind(Class specifiedClass, Enum subKind) {
			super(specifiedClass, subKind);
		}

		public Kind(Class specifiedClass, String subKind) {
			super(specifiedClass, subKind);
		}

		public Kind(Class specifiedClass) {
			super(specifiedClass);
		}

		public Kind(Enum enumKind) {
			super(enumKind);
		}

		public Kind(String stringKind) {
			super(stringKind);
		}
		
		public static Kind of(String kind){
			return specifierByString.computeIfAbsent(kind , Kind::new);
		}
		
		public static Kind of(Enum kind){
			return specifierByEnum.computeIfAbsent(kind , Kind::new);
		}
		
		public static Kind of(Class clazz){
			return specifierByClass.computeIfAbsent(clazz , Kind::new);
		}
		
		public static Kind of(Class clazz,Specifier kind){
			return specifierByString.get(clazz.getName()+"("+kind.toString()+")");
		}
		
		public static Kind of(Class clazz,String kind){
			return specifierByString.get(clazz.getName()+"("+kind+")");
		}
		
		public static Kind classBaseOf(Object object){
			return specifierByString.get(object.getClass().getName());
		}
		
		static Map,Kind> specifierByClass =  new HashMap<>();
		
		static Map specifierByString =  new HashMap<>();
		
		static Map,Kind> specifierByEnum = new HashMap<>();
	}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy