### Question:
SetProperty extends CollectionProperty<V, Set<V>> { @Override public SetProperty<V> outer() { return getName().endsWith("+") ? this : PropertyFactory.createSet(getName() + "+", getEntityType()); } protected  SetProperty(String name, Expression expression, Class<V> entityType); @Override SetProperty<V> alias(String alias); @Override SetProperty<V> outer(); SetProperty<V> enclosing();  }### Answer:
@Test public void outer() { assertEquals("path", property.getName()); assertEquals(ExpressionFactory.pathExp("path"), property.getExpression()); property = property.outer(); assertEquals("path+", property.getName()); assertEquals(ExpressionFactory.pathExp("path+"), property.getExpression()); property = property.outer(); assertEquals("path+", property.getName()); assertEquals(ExpressionFactory.pathExp("path+"), property.getExpression()); }