<commit_before># ***************************************************************************
# *   Copyright (c) 2013 <NAME> <<EMAIL>>        *
# *   Copyright (c) 2016 <NAME> <<EMAIL>>              *
# *                                                                         *
# *   This file is part of the FreeCAD CAx development system.              *
# *                                                                         *
# *   This program is free software; you can redistribute it and/or modify  *
# *   it under the terms of the GNU Lesser General Public License (LGPL)    *
# *   as published by the Free Software Foundation; either version 2 of     *
# *   the License, or (at your option) any later version.                   *
# *   for detail see the LICENCE text file.                                 *
# *                                                                         *
# *   This program is distributed in the hope that it will be useful,       *
# *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
# *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
# *   GNU Library General Public License for more details.                  *
# *                                                                         *
# *   You should have received a copy of the GNU Library General Public     *
# *   License along with this program; if not, write to the Free Software   *
# *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  *
# *   USA                                                                   *
# *                                                                         *
# ***************************************************************************

__title__ = "FreeCAD FEM material document object"
__author__ = "<NAME>, <NAME>"
__url__ = "http://www.freecadweb.org"

## @package material_common
#  \ingroup FEM
#  \brief material common object

from . import base_fempythonobject


class MaterialCommon(base_fempythonobject.BaseFemPythonObject):
    """
    The MaterialCommon object
    """

    Type = "Fem::MaterialCommon"

    def __init__(self, obj):
        super(MaterialCommon, self).__init__(obj)
        self.add_properties(obj)

    def onDocumentRestored(self, obj):
        self.add_properties(obj)

    def add_properties(self, obj):
        # References
        if not hasattr(obj, "References"):
            obj.addProperty(
                "App::PropertyLinkSubList",
                "References",
                "Material",
                "List of material shapes"
            )
        # Category
        # attribute Category was added in commit 61fb3d429a
        if not hasattr(obj, "Category"):
            obj.addProperty(
                "App::PropertyEnumeration",
                "Category",
                "Material",
                "Material type: fluid or solid"
            )
        obj.Category = ["Solid", "Fluid"]  # used in TaskPanel
        obj.Category = "Solid"
        """
        Some remarks to the category. Not finished, thus to be continued.

        Following question need to be answered:
        Why use a attribute to split the object? If a new fem object is needed,
        a new fem object should be created. A new object will have an own Type<commit_msg>FEM: material common obj, fix category attribute<commit_after># ***************************************************************************
# *   Copyright (c) 2013 <NAME> <<EMAIL>>        *
# *   Copyright (c) 2016 <NAME> <<EMAIL>>              *
# *                                                                         *
# *   This file is part of the FreeCAD CAx development system.              *
# *                                                                         *
# *   This program is free software; you can redistribute it and/or modify  *
# *   it under the terms of the GNU Lesser General Public License (LGPL)    *
# *   as published by the Free Software Foundation; either version 2 of     *
# *   the License, or (at your option) any later version.                   *
# *   for detail see the LICENCE text file.                                 *
# *                                                                         *
# *   This program is distributed in the hope that it will be useful,       *
# *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
# *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
# *   GNU Library General Public License for more details.                  *
# *                                                                         *
# *   You should have received a copy of the GNU Library General Public     *
# *   License along with this program; if not, write to the Free Software   *
# *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  *
# *   USA                                                                   *
# *                                                                         *
# ***************************************************************************

__title__ = "FreeCAD FEM material document object"
__author__ = "<NAME>, <NAME>"
__url__ = "http://www.freecadweb.org"

## @package material_common
#  \ingroup FEM
#  \brief material common object

from . import base_fempythonobject


class MaterialCommon(base_fempythonobject.BaseFemPythonObject):
    """
    The MaterialCommon object
    """

    Type = "Fem::MaterialCommon"

    def __init__(self, obj):
        super(MaterialCommon, self).__init__(obj)
        self.add_properties(obj)

    def onDocumentRestored(self, obj):
        self.add_properties(obj)

    def add_properties(self, obj):
        # References
        if not hasattr(obj, "References"):
            obj.addProperty(
                "App::PropertyLinkSubList",
                "References",
                "Material",
                "List of material shapes"
            )
        # Category
        # attribute Category was added in commit 61fb3d429a
        if not hasattr(obj, "Category"):
            obj.addProperty(
                "App::PropertyEnumeration",
                "Category",
                "Material",
                "Material type: fluid or solid"
            )
            obj.Category = ["Solid", "Fluid"]  # used in TaskPanel
            obj.Category = "Solid"
        """
        Some remarks to the category. Not finished, thus to be continued.

        Following question need to be answered:
        Why use a attribute to split the object? If a new fem object is needed,
        a new fem object should be created. A new object will have an own Type
{'fraction_non_alphanumeric': 0.11866686593932148, 'fraction_numerical': 0.008668360484232552, 'mean_word_length': 1.5224274406332454, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 36, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3004985', 'n_tokens_mistral': 1574, 'n_tokens_neox': 1471, 'n_words': 557}