public LayoutModel build() { boolean hasShapeProperties = false; for (PropertyBuilder property : properties.values()) { if (property.isShapeProperty()) { hasShapeProperties = true; } } return new LayoutModel( objectTypeSuperclass, superLayout, name, packageName, hasObjectTypeGuard, hasObjectGuard, hasDynamicObjectGuard, buildProperties(), interfaceFullName, hasShapeProperties); }