def METHOD_NAME(self) -> List[OODocument]:
    """
    Currently hardcoded for java-style
    :return:
    """
    sv: SchemaView
    sv = self.schemaview
    docs = []
    for cn in sv.all_classes(imports=False):
        c = sv.get_class(cn)
        safe_cn = camelcase(cn)
        oodoc = OODocument(name=safe_cn, package=self.package, source_schema=sv.schema)
        docs.append(oodoc)
        ooclass = OOClass(
            name=safe_cn,
            description=c.description,
            package=self.package,
            fields=[],
            source_class=c,
        )
        # currently hardcoded for java style, one class per doc
        oodoc.classes = [ooclass]
        if c.mixin:
            ooclass.mixin = c.mixin
        if c.mixins:
            ooclass.mixins = [camelcase(x) for x in c.mixins]
        if c.abstract:
            ooclass.abstract = c.abstract
        if c.is_a:
            ooclass.is_a = self.get_class_name(c.is_a)
            parent_slots = sv.class_slots(c.is_a)
        else:
            parent_slots = []
        for sn in sv.class_slots(cn):
            safe_sn = self.get_slot_name(sn)
            slot = sv.induced_slot(sn, cn)
            range = slot.range
            default_value = "null"
            if range is None:
                # TODO: schemaview should infer this
                range = sv.schema.default_range
            if range is None:
                range = "string"
            if range in sv.all_classes():
                range = self.get_class_name(range)
                default_value = "null"
            elif range in sv.all_types():
                t = sv.get_type(range)
                range = self.map_type(t, slot.required)
                if range is None:  # If mapping fails,
                    range = self.map_type(sv.all_types().get("string"))
            elif range in sv.all_enums():
                range = self.map_type(sv.all_types().get("string"))
            else:
                raise Exception(f"Unknown range {range}")
            # Set default values for
            if range == "boolean":
                default_value = "false"
            elif range == "integer":
                default_value = "0"
            elif range == "String":
                default_value = '""'
            # TODO:
            #  default_value = default_value_for_type(range)
            if slot.multivalued:
                range = self.make_multivalued(range)
                default_value = "List.of()"
            oofield = OOField(
                name=safe_sn,
                source_slot=slot,
                range=range,
                default_value=default_value,
            )
            if sn not in parent_slots:
                ooclass.fields.append(oofield)
            ooclass.all_fields.append(oofield)
    return docs