code: List<String> generateMetaPropertyConstant() {
          data.getBean().ensureImport(MetaProperty.class);
          data.getBean().ensureImport(DirectMetaProperty.class);
          List<String> list = new ArrayList<>();
          list.add("\t\t/**");
          list.add("\t\t * The meta-property for the {@code " + data.getPropertyName() + "} property.");
          list.add("\t\t */");
          if (data.isBeanGenericType()) {
              list.add("\t\t@SuppressWarnings({\"unchecked\", \"rawtypes\" })");
              list.add("\t\tprivate final MetaProperty<" + propertyType() + "> " + data.getMetaFieldName() +
                  " = (DirectMetaProperty) DirectMetaProperty.of" + readWrite() + "(");
              list.add("\t\t\t\tthis, \"" + data.getPropertyName() + "\", " +
                  data.getBean().getTypeRaw() + ".class, " + actualType() + ");");
          } else {
              String propertyType = propertyType();
              if (propertyType.length() == 1) {
                  propertyType = "Object";
              }
              if (data.isGenericParamType()) {
                  list.add("\t\t@SuppressWarnings({\"unchecked\", \"rawtypes\" })");
              }
              list.add("\t\tprivate final MetaProperty<" + propertyType + "> " + data.getMetaFieldName() +
                  " = DirectMetaProperty.of" + readWrite() + "(");
              list.add("\t\t\t\tthis, \"" + data.getPropertyName() + "\", " +
                  data.getBean().getTypeRaw() + ".class, " + actualType() + ");");
          }
          return list;
      }
docs: -----------------------------------------------------------------------