private Data data() {
		Data value = data;
		if (value == null) {
			synchronized (this) {
				value = data;
				if (value == null) {
					data = value = new Data(
						Properties.walk(model)
							.sorted(Comparator.comparing(Property::path))
							.toList()
					);
				}
			}
		}

		return value;
	}
Create a new metaobject wrapper for the given {@code object}.

@param model the object to wrap
@throws NullPointerException if the argument is {@code null}
jenetics.incubator/src/main/java/io/jenetics/incubator/beans/ModelBean.java