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

org.sfm.reflect.PropertyMeta Maven / Gradle / Ivy

package org.sfm.reflect;


public abstract class PropertyMeta {
	private final String name;
	protected final ReflectionService reflectService;
	
	private volatile Setter setter;
	private volatile ClassMeta classMeta;
	public PropertyMeta(String name, ReflectionService reflectService) {
		this.name = name;
		this.reflectService = reflectService;
	}

	public final Setter getSetter() {
		Setter lsetter = setter;
		if (lsetter == null) {
			lsetter = newSetter();
			setter = lsetter;
		}
		return lsetter;
	}

	protected abstract Setter newSetter();

	public final String getName() {
		return name;
	}

	public abstract Class getType();

	public final ClassMeta getClassMeta() {
		ClassMeta meta = classMeta;
		if (meta == null) {
			meta = new ClassMeta<>(name, getType(), reflectService);
			classMeta = meta;
		}
		return meta;
	}
	
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy