original_string: public function createTypeDefinition(
          $id,
          $localName,
          $baseTypeIdString,
          $parentId,
          $creatable,
          $fileable,
          $queryable,
          $controllablePolicy,
          $controllableACL,
          $fulltextIndexed,
          $includedInSupertypeQuery,
          $localNamespace = '',
          $queryName = '',
          $displayName = '',
          $description = '',
          TypeMutabilityInterface $typeMutability = null
      ) {
          $typeDefinition = $this->getBindingsObjectFactory()->getTypeDefinitionByBaseTypeId($baseTypeIdString, $id);
  
          $typeDefinition->setLocalName($localName);
          $typeDefinition->setParentTypeId($parentId);
          $typeDefinition->setIsCreatable($creatable);
          $typeDefinition->setIsFileable($fileable);
          $typeDefinition->setIsQueryable($queryable);
          $typeDefinition->setisControllablePolicy($controllablePolicy);
          $typeDefinition->setIsControllableAcl($controllableACL);
          $typeDefinition->setIsFulltextIndexed($fulltextIndexed);
          $typeDefinition->setIsIncludedInSupertypeQuery($includedInSupertypeQuery);
          $typeDefinition->setLocalNamespace($localNamespace);
          $typeDefinition->setQueryName($queryName);
          $typeDefinition->setDisplayName($displayName);
          $typeDefinition->setDescription($description);
          if ($typeMutability !== null) {
              $typeDefinition->setTypeMutability($typeMutability);
          }
  
          return $typeDefinition;
      }
code: public function createTypeDefinition(
          $id,
          $localName,
          $baseTypeIdString,
          $parentId,
          $creatable,
          $fileable,
          $queryable,
          $controllablePolicy,
          $controllableACL,
          $fulltextIndexed,
          $includedInSupertypeQuery,
          $localNamespace = '',
          $queryName = '',
          $displayName = '',
          $description = '',
          TypeMutabilityInterface $typeMutability = null
      ) {
          $typeDefinition = $this->getBindingsObjectFactory()->getTypeDefinitionByBaseTypeId($baseTypeIdString, $id);
  
          $typeDefinition->setLocalName($localName);
          $typeDefinition->setParentTypeId($parentId);
          $typeDefinition->setIsCreatable($creatable);
          $typeDefinition->setIsFileable($fileable);
          $typeDefinition->setIsQueryable($queryable);
          $typeDefinition->setisControllablePolicy($controllablePolicy);
          $typeDefinition->setIsControllableAcl($controllableACL);
          $typeDefinition->setIsFulltextIndexed($fulltextIndexed);
          $typeDefinition->setIsIncludedInSupertypeQuery($includedInSupertypeQuery);
          $typeDefinition->setLocalNamespace($localNamespace);
          $typeDefinition->setQueryName($queryName);
          $typeDefinition->setDisplayName($displayName);
          $typeDefinition->setDescription($description);
          if ($typeMutability !== null) {
              $typeDefinition->setTypeMutability($typeMutability);
          }
  
          return $typeDefinition;
      }
code_tokens: public function createTypeDefinition ( $ id , $ localName , $ baseTypeIdString , $ parentId , $ creatable , $ fileable , $ queryable , $ controllablePolicy , $ controllableACL , $ fulltextIndexed , $ includedInSupertypeQuery , $ localNamespace = '' , $ queryName = '' , $ displayName = '' , $ description = '' , TypeMutabilityInterface $ typeMutability = null ) { $ typeDefinition = $ this -> getBindingsObjectFactory ( ) -> getTypeDefinitionByBaseTypeId ( $ baseTypeIdString , $ id ) ; $ typeDefinition -> setLocalName ( $ localName ) ; $ typeDefinition -> setParentTypeId ( $ parentId ) ; $ typeDefinition -> setIsCreatable ( $ creatable ) ; $ typeDefinition -> setIsFileable ( $ fileable ) ; $ typeDefinition -> setIsQueryable ( $ queryable ) ; $ typeDefinition -> setisControllablePolicy ( $ controllablePolicy ) ; $ typeDefinition -> setIsControllableAcl ( $ controllableACL ) ; $ typeDefinition -> setIsFulltextIndexed ( $ fulltextIndexed ) ; $ typeDefinition -> setIsIncludedInSupertypeQuery ( $ includedInSupertypeQuery ) ; $ typeDefinition -> setLocalNamespace ( $ localNamespace ) ; $ typeDefinition -> setQueryName ( $ queryName ) ; $ typeDefinition -> setDisplayName ( $ displayName ) ; $ typeDefinition -> setDescription ( $ description ) ; if ( $ typeMutability !== null ) { $ typeDefinition -> setTypeMutability ( $ typeMutability ) ; } return $ typeDefinition ; }
docstring: Create a type definition with all required properties.
  
  @param string $id This opaque attribute identifies this object-type in the repository.
  @param string $localName This attribute represents the underlying repository’s name for the object-type.
  This field is opaque and has no uniqueness constraint imposed by this specification.
  @param string $baseTypeIdString A value that indicates whether the base type for this object-type is the
  document, folder, relationship, policy, item, or secondary base type.
  @param string $parentId The id of the object-type’s immediate parent type. It MUST be "not set" for a base
  type. Depending on the binding this means it might not exist on the base type object-type definition.
  @param boolean $creatable Indicates whether new objects of this type MAY be created. If the value of this
  attribute is FALSE, the repository MAY contain objects of this type already, but MUST NOT allow new objects
  of this type to be created.
  @param boolean $fileable Indicates whether or not objects of this type are file-able.
  @param boolean $queryable Indicates whether or not this object-type can appear in the FROM clause of a query
  statement. A non-queryable object-type is not visible through the relational view that is used for query,
  and CAN NOT appear in the FROM clause of a query statement.
  @param boolean $controllablePolicy Indicates whether or not objects of this type are controllable via policies.
  Policy objects can only be applied to controllablePolicy objects.
  @param boolean $controllableACL This attribute indicates whether or not objects of this type are controllable by
  ACL’s. Only objects that are controllableACL can have an ACL.
  @param boolean $fulltextIndexed Indicates whether objects of this type are indexed for full-text search for
  querying via the CONTAINS() query predicate. If the value of this attribute is TRUE, the full-text index
  MUST cover the content and MAY cover the metadata.
  @param boolean $includedInSupertypeQuery Indicates whether this type and its subtypes appear in a query of this
  type’s ancestor types. For example: if Invoice is a sub-type of cmis:document, if this is TRUE on Invoice
  then for a query on cmis:document, instances of Invoice will be returned if they match. If this attribute
  is FALSE, no instances of Invoice will be returned even if they match the query.
  @param string $localNamespace This attribute allows repositories to represent the internal namespace of
  the underlying repository’s name for the object-type.
  @param string $queryName Used for query and filter operations on object-types. This is an opaque string with
  limitations. See 2.1.2.1.3 Query Names of the CMIS 1.1 standard for details.
  @param string $displayName Used for presentation by application.
  @param string $description Description of this object-type, such as the nature of content, or its intended use.
  Used for presentation by application.
  @param TypeMutabilityInterface|null $typeMutability
  typeMutability.create - Indicates whether new child types may be created with this type as the parent.
  typeMutability.update - Indicates whether clients may make changes to this type per the constraints
  defined in this specification.
  typeMutability.delete - Indicates whether clients may delete this type if there are no instances of it in
  the repository.
  @return FolderTypeDefinition|DocumentTypeDefinition|RelationshipTypeDefinition|PolicyTypeDefinition|ItemTypeDefinition|SecondaryTypeDefinition
docstring_tokens: Create a type definition with all required properties .