# Path: toscaparser/properties.py
# class Property(object):
#     '''TOSCA built-in Property type.'''
# 
#     PROPERTY_KEYS = (
#         TYPE, REQUIRED, DESCRIPTION, DEFAULT, CONSTRAINTS
#     ) = (
#         'type', 'required', 'description', 'default', 'constraints'
#     )
# 
#     ENTRY_SCHEMA_KEYS = (
#         ENTRYTYPE, ENTRYPROPERTIES
#     ) = (
#         'type', 'properties'
#     )
# 
#     def __init__(self, property_name, value, schema_dict, custom_def=None):
#         self.name = property_name
#         self.value = value
#         self.custom_def = custom_def
#         self.schema = Schema(property_name, schema_dict)
# 
#     @property
#     def type(self):
#         return self.schema.type
# 
#     @property
#     def required(self):
#         return self.schema.required
# 
#     @property
#     def description(self):
#         return self.schema.description
# 
#     @property
#     def default(self):
#         return self.schema.default
# 
#     @property
#     def constraints(self):
#         return self.schema.constraints
# 
#     @property
#     def entry_schema(self):
#         return self.schema.entry_schema
# 
#     def validate(self):
#         '''Validate if not a reference property.'''
#         if not is_function(self.value):
#             if self.type == Schema.STRING:
#                 self.value = str(self.value)
#             self.value = DataEntity.validate_datatype(self.type, self.value,
#                                                       self.entry_schema,
#                                                       self.custom_def,
#                                                       self.name)
#             self._validate_constraints()
# 
#     def _validate_constraints(self):
#         if self.constraints:
#             for constraint in self.constraints:
#                 constraint.validate(self.value)


from toscaparser.properties import Property
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.



class Capability(object):
    '''TOSCA built-in capabilities type.'''

    def __init__(self, name, properties, definition, custom_def=None):
        self.name = name
        self._properties = properties
        self.definition = definition
        self.custom_def = custom_def

    def get_properties_objects(self):
        '''Return a list of property objects.'''
        properties = []
        props = self._properties
        if props:
            for name, value in props.items():
                props_def = self.definition.get_properties_def()
                if props_def and name in props_def:

# Path: toscaparser/properties.py
# class Property(object):
#     '''TOSCA built-in Property type.'''
# 
#     PROPERTY_KEYS = (
#         TYPE, REQUIRED, DESCRIPTION, DEFAULT, CONSTRAINTS
#     ) = (
#         'type', 'required', 'description', 'default', 'constraints'
#     )
# 
#     ENTRY_SCHEMA_KEYS = (
#         ENTRYTYPE, ENTRYPROPERTIES
#     ) = (
#         'type', 'properties'
#     )
# 
#     def __init__(self, property_name, value, schema_dict, custom_def=None):
#         self.name = property_name
#         self.value = value
#         self.custom_def = custom_def
#         self.schema = Schema(property_name, schema_dict)
# 
#     @property
#     def type(self):
#         return self.schema.type
# 
#     @property
#     def required(self):
#         return self.schema.required
# 
#     @property
#     def description(self):
#         return self.schema.description
# 
#     @property
#     def default(self):
#         return self.schema.default
# 
#     @property
#     def constraints(self):
#         return self.schema.constraints
# 
#     @property
#     def entry_schema(self):
#         return self.schema.entry_schema
# 
#     def validate(self):
#         '''Validate if not a reference property.'''
#         if not is_function(self.value):
#             if self.type == Schema.STRING:
#                 self.value = str(self.value)
#             self.value = DataEntity.validate_datatype(self.type, self.value,
#                                                       self.entry_schema,
#                                                       self.custom_def,
#                                                       self.name)
#             self._validate_constraints()
# 
#     def _validate_constraints(self):
#         if self.constraints:
#             for constraint in self.constraints:
#                 constraint.validate(self.value)


# Path: toscaparser/capabilities.py
from toscaparser.properties import Property

#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.



class Capability(object):
    '''TOSCA built-in capabilities type.'''

    def __init__(self, name, properties, definition, custom_def=None):
        self.name = name
        self._properties = properties
        self.definition = definition
        self.custom_def = custom_def

    def get_properties_objects(self):
        '''Return a list of property objects.'''
        properties = []
        props = self._properties
        if props:
            for name, value in props.items():
                props_def = self.definition.get_properties_def()
                if props_def and name in props_def:

                    properties.append(Property(name, value,