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

com.draagon.meta.manager.db.ObjectMapping Maven / Gradle / Ivy

The newest version!
package com.draagon.meta.manager.db;

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

import com.draagon.meta.MetaField;
import com.draagon.meta.manager.db.defs.BaseArgDef;

public class ObjectMapping {

	private ObjectMapping superMap = null;
	private Map fieldMapping = new HashMap();
	private Map nameMapping = new HashMap();

	public ObjectMapping() {}

	public void setSuperMapping(ObjectMapping superMap) {
		this.superMap = superMap;		
	}
	
	public ObjectMapping getSuperMapping() {
		return this.superMap;
	}
	
	public Collection getArguments() {
		return nameMapping.values();
	}

	public Collection getMetaFields() {
		return fieldMapping.values();
	}

	public void addMap( BaseArgDef arg, MetaField mf ) {
		fieldMapping.put( arg.getName(), mf );
		nameMapping.put( mf.getName(), arg );
	}

	public MetaField getField( String argName ) {
		MetaField mf = fieldMapping.get( argName );
		if ( mf == null && superMap != null ) {
			return superMap.getField( argName );
		}
		return mf;
	}	

	public MetaField getField( BaseArgDef argDef ) {
		return getField( argDef.getName() );
	}	

	public BaseArgDef getArgDef( String fieldName ) {
		BaseArgDef def = nameMapping.get( fieldName );
		if ( def == null && superMap != null ) {
			return superMap.getArgDef( fieldName );
		}
		return def;
	}	

	public BaseArgDef getArgDef( MetaField mf ) {
		return getArgDef( mf.getName() );
	}
	
	public boolean isInThisMap( MetaField mf ) {
		if ( nameMapping.get( mf.getName() ) != null ) return true;
		return false;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy