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

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

package org.unlaxer.base;

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

public class IDEntity extends Specifier{

	private static final long serialVersionUID = -333078144066980293L;

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

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

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy