@Override public Object get( String name ) { return next.get( name ); }
@Override public Map<String, EntityReference> map( NamedAssociation<?> namedAssoc ) { if( namedAssoc == null ) { return Collections.emptyMap(); } Map<String, EntityReference> refs = new LinkedHashMap<>( namedAssoc.count() ); for( String name : namedAssoc ) { refs.put( name, EntityReference.entityReferenceFor( namedAssoc.get( name ) ) ); } return refs; } };
public static <T> T oneOf( final NamedAssociation<T> association ) { NullArgumentException.validateNotNull( "Association", association ); return association.get( first( association ) ); }
@Override public Map<String, EntityReference> map( AssociationDescriptor associationDescriptor ) { NamedAssociation<?> assoc = associationState.namedAssociationFor( associationDescriptor.accessor() ); Map<String, EntityReference> refs = new LinkedHashMap<>( assoc.count() ); for( String name : assoc ) { refs.put( name, EntityReference.entityReferenceFor( assoc.get( name ) ) ); } return refs; } } );
@Override public Map<String, EntityReference> map( AssociationDescriptor descriptor ) { AssociationDescriptor associationDescriptor; try { String associationName = descriptor.qualifiedName().name(); AssociationStateDescriptor entityState = entityDescriptor.state(); associationDescriptor = entityState.getNamedAssociationByName( associationName ); } catch( IllegalArgumentException e ) { return Collections.emptyMap(); } AccessibleObject associationMethod = associationDescriptor.accessor(); NamedAssociation<Object> assoc = associationState.namedAssociationFor( associationMethod ); Map<String, EntityReference> refs = new LinkedHashMap<>( assoc.count() ); for( String name : assoc ) { refs.put( name, EntityReference.entityReferenceFor( assoc.get( name ) ) ); } return refs; } } );
@Test @Ignore( "Traversing of NamedAssociations is not implemented" ) public void script37() { QueryBuilder<Person> qb = this.module.newQueryBuilder( Person.class ); Person person = templateFor( Person.class ); Query<Person> query = unitOfWork.newQuery( qb.where( eq( person.accounts().get( "anns" ).number(), "accountOfAnnDoe" ) ) ); System.out.println( "*** script37: " + query ); verifyUnorderedResults( query, "Jack Doe", "Ann Doe" ); }
for( String name : state ) entities.put( name, ( (Identity) state.get( name ) ).identity().get() );
for( String name : state ) entities.put( name, ( (Identity) state.get( name ) ).identity().get() );