public IdentityConfigurer via(final IdentityStrategy identityStrategy) { typePropertyIdentityStrategyResolver.setStrategy(identityStrategy, type, propertyName); return identityConfigurer; } }
/** * Default implementation uses IdentityService.EQUALS_IDENTITY_STRATEGY. * * @param referenceItem */ public CollectionItemAccessor(final Object referenceItem) { this(referenceItem, EqualsIdentityStrategy.getInstance()); }
private boolean contains(final Iterable<?> haystack, final Object needle, final IdentityStrategy identityStrategy) { for (final Object item : haystack) { if (identityStrategy.equals(needle, item)) { return true; } } return false; } }
public IdentityStrategy resolve(final DiffNode node) { if (isQualified(node)) { final PropertyId propertyKey = new PropertyId(node.getParentNode().getValueType(), node.getPropertyName()); return strategies.get(propertyKey); } return null; }
public OfCollectionItems ofCollectionItems(final NodePath nodePath) { return collectionItemIdentityService.ofCollectionItems(nodePath); }
IdentityConfigurer.OfCollectionItems ofCollectionItems(final Class<?> type, final String propertyName) { return new OfCollectionItemsByTypeProperty(type, propertyName); }
IdentityConfigurer.OfCollectionItems ofCollectionItems(final NodePath nodePath) { return new OfCollectionItemsByNodePath(nodePath); }
public IdentityConfigurer setDefaultCollectionItemIdentityStrategy(final IdentityStrategy identityStrategy) { return collectionItemIdentityService.setDefaultIdentityStrategy(identityStrategy); }
public IdentityStrategy resolveIdentityStrategy(final DiffNode node) { return collectionItemIdentityService.resolveIdentityStrategy(node); }
public void setStrategy(final IdentityStrategy identityStrategy, final Class<?> type, final String... properties) { for (final String property : properties) { strategies.put(new PropertyId(type, property), identityStrategy); } }
CollectionItemIdentityService(final IdentityConfigurer identityConfigurer) { this.identityConfigurer = identityConfigurer; this.nodePathIdentityStrategies = new ValueNode<IdentityStrategy>(); this.typePropertyIdentityStrategyResolver = new TypePropertyIdentityStrategyResolver(); }
public IdentityStrategy resolveIdentityStrategy(final DiffNode node) { IdentityStrategy identityStrategy = typePropertyIdentityStrategyResolver.resolve(node); if (identityStrategy != null) { return identityStrategy; } identityStrategy = nodePathIdentityStrategies.getNodeForPath(node.getPath()).getValue(); if (identityStrategy != null) { return identityStrategy; } return defaultIdentityStrategy; }
public final DiffNode compare(final DiffNode parentNode, final Instances collectionInstances) final IdentityStrategy identityStrategy = identityStrategyResolver.resolveIdentityStrategy(collectionNode); if (identityStrategy != null)
@Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final CollectionItemElementSelector that = (CollectionItemElementSelector) o; if (item != null ? !identityStrategy.equals(item, that.item) : that.item != null) { return false; } return true; }
public IdentityConfigurer via(final IdentityStrategy identityStrategy) { typePropertyIdentityStrategyResolver.setStrategy(identityStrategy, type, propertyName); return identityConfigurer; } }
/** * Default implementation uses {@linkplain EqualsIdentityStrategy}. * * @param item */ public CollectionItemElementSelector(final Object item) { this(item, EqualsIdentityStrategy.getInstance()); }
public OfCollectionItems ofCollectionItems(final Class<?> type, final String propertyName) { return collectionItemIdentityService.ofCollectionItems(type, propertyName); }
public Object get(final Object target) { final Collection targetCollection = objectAsCollection(target); if (targetCollection == null) { return null; } for (final Object item : targetCollection) { if (item != null && identityStrategy.equals(item, referenceItem)) { return item; } } return null; }
public void unset(final Object target) { final Collection<?> targetCollection = objectAsCollection(target); if (targetCollection == null) { return; } final Iterator<?> iterator = targetCollection.iterator(); while (iterator.hasNext()) { final Object item = iterator.next(); if (item != null && identityStrategy.equals(item, referenceItem)) { iterator.remove(); break; } } } }
private boolean contains(final Iterable<?> haystack, final Object needle, final IdentityStrategy identityStrategy) { for (final Object item : haystack) { if (identityStrategy.equals(needle, item)) { return true; } } return false; } }