### Question:
SetProperty extends CollectionProperty<V, Set<V>> { @Override public SetProperty<V> alias(String alias) { ASTPath exp = PropertyUtils.createPathExp(this.getName(), alias, getExpression().getPathAliases()); return PropertyFactory.createSet(exp.getPath(), exp, this.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 alias() { assertEquals("path", property.getName()); property = property.alias("alias"); assertEquals("alias", property.getName()); assertEquals(1, property.getExpression().getPathAliases().size()); assertEquals("path.artist", property1.getName()); property1 = property1.alias("a"); assertEquals("path.a", property1.getName()); assertEquals(1, property1.getExpression().getPathAliases().size()); assertEquals("artist", property1.getExpression().getPathAliases().get("a")); }