package fr.lteconsulting.hexa.databinding; import java.util.HashMap; import fr.lteconsulting.hexa.databinding.properties.DynamicPropertyBag; import fr.lteconsulting.hexa.databinding.propertyadapters.PropertyAdapter; class PlatformSpecificJre implements PlatformSpecific { private static final PlatformSpecificJre INSTANCE = new PlatformSpecificJre(); public static PlatformSpecificJre get() { return INSTANCE; } private PlatformSpecificJre() { } private static HashMap<Integer, DynamicPropertyBag> propertyBags = new HashMap<>(); public void setObjectDynamicPropertyBag( Object object, DynamicPropertyBag bag ) { propertyBags.put( System.identityHashCode( object ), bag ); } public DynamicPropertyBag getObjectDynamicPropertyBag( Object object ) { return propertyBags.get( System.identityHashCode( object ) ); } @Override public boolean isBindingToken( String token ) { return false; } @Override public <T> T getBindingValue( Object object, String token ) { return null; } @Override public boolean setBindingValue( Object object, String name, Object value ) { return false; } @Override public PropertyAdapter createPropertyAdapter( Object object ) { return null; } // Metadata private static HashMap<Integer, Object> metadatas = new HashMap<>(); @Override public void setObjectMetadata( Object object, Object metadata ) { metadatas.put( System.identityHashCode( object ), metadata ); } @Override public <T> T getObjectMetadata( Object object ) { @SuppressWarnings( "unchecked" ) T result = (T) metadatas.get( System.identityHashCode( object ) ); return result; } // DTOMapper @Override public boolean isSpecificDataAdapter( Object object ) { return false; } @Override public void fillSpecificDataAdapter( Object widget, Object context, String property, Class<?> srcPptyType, DataAdapterInfo res ) { throw new IllegalStateException(); } }