21 import(
'lib.pkp.classes.filter.ClassTypeDescription');
23 define(
'ASSOC_TYPE_ANY', -1);
42 parent::__construct($typeName);
52 return TYPE_DESCRIPTION_NAMESPACE_METADATA;
79 parent::parseTypeName(
'lib.pkp.classes.metadata.MetadataDescription');
82 $typeNameParts = explode(
'(', $typeName);
83 if (!count($typeNameParts) == 2)
return false;
87 $splitMetadataSchemaClass = $this->
splitClassName($typeNameParts[0]);
88 if ($splitMetadataSchemaClass ===
false)
return false;
89 list($this->_metadataSchemaPackageName, $this->_metadataSchemaClassName) = $splitMetadataSchemaClass;
92 $assocTypeString = trim($typeNameParts[1],
')');
93 if ($assocTypeString ==
'*') {
94 $this->_assocType = ASSOC_TYPE_ANY;
97 $assocTypeString =
'ASSOC_TYPE_'.$assocTypeString;
98 if (!defined($assocTypeString))
return false;
99 $this->_assocType = constant($assocTypeString);
111 if (!parent::checkType($object))
return false;
114 $metadataSchema =& $object->getMetadataSchema();
115 if (!is_a($metadataSchema, $this->_metadataSchemaClassName))
return false;
118 if ($this->_assocType != ASSOC_TYPE_ANY) {
119 if ($object->getAssocType() != $this->_assocType)
return false;