private Object deserializeIdAttributeValue ( final EntityMetadata m , String idValue ) { if ( idValue == null ) { return null ; } Class < ? > embeddableClass = m . getIdAttribute ( ) . getBindableJavaType ( ) ; Object embeddedObject = embeddedObject = KunderaCoreUtils . createNewInstance ( embeddableClass ) ; List < String > tokens = new ArrayList < String > ( ) ; StringTokenizer st = new StringTokenizer ( ( String ) idValue , COMPOSITE_KEY_SEPARATOR ) ; while ( st . hasMoreTokens ( ) ) { tokens . add ( ( String ) st . nextElement ( ) ) ; } int count = 0 ; for ( Field embeddedField : embeddableClass . getDeclaredFields ( ) ) { if ( ! ReflectUtils . isTransientOrStatic ( embeddedField ) ) { if ( count < tokens . size ( ) ) { String value = tokens . get ( count ++ ) ; PropertyAccessorHelper . set ( embeddedObject , embeddedField , value ) ; } } } return embeddedObject ; }
Prepares Embedded ID field from value prepared via serializeIdAttributeValue method .