@Override public Map<String, EntityReference> map( Map<String, String> stringMap ) { if( stringMap == null ) { return Collections.emptyMap(); } Map<String, EntityReference> refMap = new LinkedHashMap<>( stringMap.size() ); for( Map.Entry<String, String> entry : stringMap.entrySet() ) { refMap.put( entry.getKey(), EntityReference.parseEntityReference( entry.getValue() ) ); } return refMap; } };
@Override public Iterable<EntityReference> map( Collection<String> stringCollec ) { if( stringCollec == null ) { return Iterables.empty(); } List<EntityReference> refList = new ArrayList<>(); for( String assId : stringCollec ) { refList.add( EntityReference.parseEntityReference( assId ) ); } return refList; } };
@Test public void givenEntityReferenceValueWhenSerializingAndDeserializingExpectEquals() { String serialized = valueSerialization.serialize( EntityReference.parseEntityReference( "ABCD-1234" ) ); assertThat( serialized, equalTo( "ABCD-1234" ) ); EntityReference deserialized = valueSerialization.deserialize( EntityReference.class, serialized ); assertThat( deserialized, equalTo( EntityReference.parseEntityReference( "ABCD-1234" ) ) ); } }
arg = EntityReference.parseEntityReference( argString );
@Override public EntityReference map( AssociationDescriptor associationDescriptor ) { Parameter param = queryAsForm.getFirst( associationDescriptor.qualifiedName().name() ); if( param == null ) { param = entityAsForm.getFirst( associationDescriptor.qualifiedName().name() ); } if( param != null ) { return EntityReference.parseEntityReference( param.getValue() ); } else { return null; } } },
@Override public EntityReference map( AssociationDescriptor eAssocDesc ) { try { return EntityReference.entityReferenceFor( vState.associationFor( eAssocDesc.accessor() ) ); } catch( IllegalArgumentException assocNotFoundOnValue ) { // Find String Property and convert to Association String propName = eAssocDesc.qualifiedName().name(); try { PropertyDescriptor vPropDesc = vStateDesc.findPropertyModelByName( propName ); if( STRING_TYPE_SPEC.satisfiedBy( vPropDesc.valueType() ) ) { String assocState = (String) vState.propertyFor( vPropDesc.accessor() ).get(); return EntityReference.parseEntityReference( assocState ); } return null; } catch( IllegalArgumentException propNotFoundOnValue ) { return null; } } } };
@Override public EntityReference map( AssociationDescriptor eAssocDesc ) { String assocName = eAssocDesc.qualifiedName().name(); try { AssociationDescriptor vAssocDesc = vStateDesc.getAssociationByName( assocName ); Object assocEntity = vState.associationFor( vAssocDesc.accessor() ).get(); return assocEntity == null ? null : EntityReference.entityReferenceFor( assocEntity ); } catch( IllegalArgumentException assocNotFoundOnValue ) { // Association not found on Value, find Property<String> and convert to Association try { PropertyDescriptor vPropDesc = vStateDesc.findPropertyModelByName( assocName ); if( STRING_TYPE_SPEC.satisfiedBy( vPropDesc.valueType() ) ) { String assocId = (String) vState.propertyFor( vPropDesc.accessor() ).get(); return assocId == null ? null : EntityReference.parseEntityReference( assocId ); } return null; } catch( IllegalArgumentException propNotFoundOnValue ) { return null; } } } };
proto.localDate().set( new LocalDate() ); proto.localDateTime().set( new LocalDateTime() ); proto.entityReference().set( EntityReference.parseEntityReference( "12345" ) ); proto.stringIntMap().get().put( "foo", 42 );