@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; } };
@Override public boolean put( String name, Object entity ) { return next.put( name, entity ); }
@Override public String nameOf( Object entity ) { return next.nameOf( entity ); }
for( String assocName : Iterables.toList( eNamedAssoc ) ) eNamedAssoc.remove( assocName ); for( Map.Entry<String, Object> assocEntry : vNamedAssoc.toMap().entrySet() ) eNamedAssoc.put( assocEntry.getKey(), assocEntry.getValue() ); for( String assocName : Iterables.toList( eNamedAssoc ) ) eNamedAssoc.remove( assocName ); eNamedAssoc.put( assocEntry.getKey(), module.currentUnitOfWork().get( (Class) eAssocDesc.type(), assocEntry.getValue() )
@Override public Object get( String name ) { return next.get( name ); }
@Override public boolean remove( String name ) { return next.remove( name ); }
@Override public Map<String, Object> toMap() { return next.toMap(); }
@Override public int count() { return next.count(); }
@Override public boolean containsName( String name ) { return next.containsName( name ); }
@Override public Iterator<String> iterator() { return next.iterator(); }
@Override public EntityReference referenceOf( String name ) { return next.referenceOf( name ); }
for( String assocName : Iterables.toList( eNamedAssoc ) ) eNamedAssoc.remove( assocName ); for( Map.Entry<String, Object> assocEntry : vNamedAssoc.toMap().entrySet() ) eNamedAssoc.put( assocEntry.getKey(), assocEntry.getValue() ); for( String assocName : Iterables.toList( eNamedAssoc ) ) eNamedAssoc.remove( assocName ); eNamedAssoc.put( assocEntry.getKey(), module.currentUnitOfWork().get( (Class) eAssocDesc.type(), assocEntry.getValue() )
public static <T> T oneOf( final NamedAssociation<T> association ) { NullArgumentException.validateNotNull( "Association", association ); return association.get( first( association ) ); }
@Override public boolean satisfiedBy( Composite item ) { NamedAssociation<T> collection = namedAssociationFunction.map( item ); if( collection == null ) { return false; } return collection.containsName( name ); }
@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; } } );
@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" ); }
@Override public boolean satisfiedBy( Composite item ) { NamedAssociation<T> collection = namedAssociationFunction.map( item ); if( collection == null ) { return false; } return collection.nameOf( value ) != null; }
@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; } } );