542 rschema = self.add_relation_type(ybo.RelationType('has_text')) |
542 rschema = self.add_relation_type(ybo.RelationType('has_text')) |
543 rschema.final = True |
543 rschema.final = True |
544 rschema = self.add_relation_type(ybo.RelationType('identity')) |
544 rschema = self.add_relation_type(ybo.RelationType('identity')) |
545 rschema.final = False |
545 rschema.final = False |
546 |
546 |
|
547 etype_name_re = r'[A-Z][A-Za-z0-9]*[a-z]+[A-Za-z0-9]*$' |
547 def add_entity_type(self, edef): |
548 def add_entity_type(self, edef): |
548 edef.name = edef.name.encode() |
549 edef.name = edef.name.encode() |
549 edef.name = bw_normalize_etype(edef.name) |
550 edef.name = bw_normalize_etype(edef.name) |
550 if not re.match(r'[A-Z][A-Za-z0-9]*[a-z]+[0-9]*$', edef.name): |
551 if not re.match(self.etype_name_re, edef.name): |
551 raise BadSchemaDefinition( |
552 raise BadSchemaDefinition( |
552 '%r is not a valid name for an entity type. It should start ' |
553 '%r is not a valid name for an entity type. It should start ' |
553 'with an upper cased letter and be followed by at least a ' |
554 'with an upper cased letter and be followed by at least a ' |
554 'lower cased letter' % edef.name) |
555 'lower cased letter' % edef.name) |
555 eschema = super(CubicWebSchema, self).add_entity_type(edef) |
556 eschema = super(CubicWebSchema, self).add_entity_type(edef) |