Example usage for org.springframework.data.mapping Association getInverse

List of usage examples for org.springframework.data.mapping Association getInverse

Introduction

In this page you can find the example usage for org.springframework.data.mapping Association getInverse.

Prototype

public P getInverse() 

Source Link

Usage

From source file:org.springframework.data.neo4j.fieldaccess.DelegatingFieldAccessorFactory.java

@SuppressWarnings("unchecked")
public <T> FieldAccessorFactoryProviders<T> accessorFactoriesFor(final Neo4jPersistentEntity<?> type) {
    synchronized (this) {
        final TypeInformation<?> typeInformation = type.getTypeInformation();
        final FieldAccessorFactoryProviders<T> fieldAccessorFactoryProviders = accessorFactoryProviderCache
                .get(typeInformation);//from  w  w  w  .  j a  va  2  s. c  o  m
        if (fieldAccessorFactoryProviders != null)
            return fieldAccessorFactoryProviders;
        final FieldAccessorFactoryProviders<T> newFieldAccessorFactories = new FieldAccessorFactoryProviders<T>(
                typeInformation, template);
        type.doWithProperties(new PropertyHandler<Neo4jPersistentProperty>() {
            @Override
            public void doWithPersistentProperty(Neo4jPersistentProperty property) {
                final FieldAccessorFactory factory = factoryForField(property);
                final List<FieldAccessorListenerFactory> listenerFactories = getFieldAccessListenerFactories(
                        property);
                newFieldAccessorFactories.add(property, factory, listenerFactories);
            }
        });
        type.doWithAssociations(new AssociationHandler<Neo4jPersistentProperty>() {
            @Override
            public void doWithAssociation(Association<Neo4jPersistentProperty> association) {
                final Neo4jPersistentProperty property = association.getInverse();
                final FieldAccessorFactory factory = factoryForField(property);
                final List<FieldAccessorListenerFactory> listenerFactories = getFieldAccessListenerFactories(
                        property);
                newFieldAccessorFactories.add(property, factory, listenerFactories);
            }
        });
        accessorFactoryProviderCache.put(typeInformation, newFieldAccessorFactories);
        return newFieldAccessorFactories;
    }
}