+ final boolean isObject = Types.objectType().equals(type);
+
+ if (statement().ordering() == Ordering.SYSTEM) {
+ return isObject ? Types.setTypeWildcard() : Types.setTypeFor(type);
+ }
+ return isObject ? Types.listTypeWildcard() : Types.listTypeFor(type);
+ }
+
+ @Override
+ LeafListRuntimeType createExternalRuntimeType(final Type type) {
+ return new DefaultLeafListRuntimeType(type, statement());
+ }
+
+ @Override
+ LeafListRuntimeType createInternalRuntimeType(final ChildLookup lookup, final LeafListEffectiveStatement statement,
+ final Type type) {
+ return new DefaultLeafListRuntimeType(type, statement);