List<PropertyOrder> properties = newList();
for (String name : propertyNames)
{
PropertyAdapter pa = classAdapter.getPropertyAdapter(name);
List<String> propertyConstraints = CollectionFactory.newList();
OrderBefore beforeAnnotation = pa.getAnnotation(OrderBefore.class);
if (beforeAnnotation != null) propertyConstraints.add("before:" + beforeAnnotation.value());
OrderAfter afterAnnotation = pa.getAnnotation(OrderAfter.class);
if (afterAnnotation != null) propertyConstraints.add("after:" + afterAnnotation.value());
if (!propertyConstraints.isEmpty()) constraints.put(name, propertyConstraints);
Method readMethod = pa.getReadMethod();
Location location = classFactory.getMethodLocation(readMethod);
properties.add(new PropertyOrder(name, computeDepth(readMethod), location.getLine()));
}