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

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

package org.unlaxer.base;

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

public class Name extends Specifier{

	private static final long serialVersionUID = 8183659027717929237L;

	public Name(Class specifiedClass, Enum subName) {
		super(specifiedClass, subName);
	}

	public Name(Class specifiedClass, String subName) {
		super(specifiedClass, subName);
	}

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

	public Name(Enum enumName) {
		super(enumName);
	}

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

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy