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

org.unlaxer.Kind Maven / Gradle / Ivy

package org.unlaxer;

import org.unlaxer.util.FactoryBoundCache;

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.get(kind);
	}
	
	public static Kind of(Enum kind){
		return specifierByEnum.get(kind);
	}
	
	public static Kind of(Class clazz){
		return specifierByClass.get(clazz);
	}
	
	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 FactoryBoundCache,Kind> specifierByClass = 
			new FactoryBoundCache<>(Kind::new);
	
	static FactoryBoundCache specifierByString = 
			new FactoryBoundCache<>(Kind::new);
	
	static FactoryBoundCache,Kind> specifierByEnum = 
			new FactoryBoundCache<>(Kind::new);
	
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy