Example #1
0
 public function delete()
 {
     $mds = ModelDescription::get_by_modelId($this->id);
     foreach ($mds as $md) {
         $md->delete();
     }
     if ($this->modelType == 'V') {
         $pm = ParticipleModel::loadByVerbModel($this->number);
         $pm->delete();
     }
     parent::delete();
 }
Example #2
0
foreach ($mms as $mm) {
    print "Creating {$mm->modelType}{$mm->slaveNumber} from " . "{$mm->modelType}{$mm->masterNumber}\n";
    $master = Model::loadByTypeNumber($mm->modelType, $mm->masterNumber);
    // Create the model
    $slave = Model::create($mm->modelType, $mm->slaveNumber, "Derivat din {$mm->modelType}{$mm->masterNumber}");
    $slave->save();
    $slave->id = db_getLastInsertedId();
    // Clone the model descriptions
    $mds = ModelDescription::loadByModelId($master->id);
    foreach ($mds as $md) {
        $md->id = 0;
        $md->modelId = $slave->id;
        $md->save();
    }
    // Clone the participle model
    if ($mm->modelType == 'V') {
        $pm = ParticipleModel::loadByVerbModel($mm->masterNumber);
        $clonePm = ParticipleModel::create($mm->slaveNumber, $pm->participleModel);
        $clonePm->save();
    }
    // Delete the mapping
    mysql_query("delete from model_mappings where model_type = " . " '{$mm->modelType}' and slave_no = '{$mm->slaveNumber}'");
    // Regenerate the lexems. In theory the paradigm won't change, but we want
    // to actually see it.
    $lexems = Lexem::loadByCanonicalModel($mm->modelType, $mm->slaveNumber);
    foreach ($lexems as $l) {
        print "\tRegenerating paradigm for {$l->form} ({$l->modelType}" . "{$l->modelNumber})\n";
        $l->regenerateParadigm();
    }
}
mysql_query('drop table model_mappings');
Example #3
0
 if (!count($errorMessages)) {
     // Clone the model
     $model = Model::factory('FlexModel')->where('modelType', $modelType)->where('number', $modelNumber)->find_one();
     $cloneModel = FlexModel::create($modelType, $newModelNumber, "Clonat după {$modelType}{$modelNumber}", $model->exponent);
     $cloneModel->save();
     // Clone the model descriptions
     $mds = Model::factory('ModelDescription')->where('modelId', $model->id)->order_by_asc('inflectionId')->order_by_asc('variant')->order_by_asc('applOrder')->find_many();
     foreach ($mds as $md) {
         $newMd = Model::factory('ModelDescription')->create();
         $newMd->copyFrom($md);
         $newMd->modelId = $cloneModel->id;
         $newMd->save();
     }
     // Clone the participle model
     if ($modelType == 'V') {
         $pm = ParticipleModel::loadByVerbModel($modelNumber);
         $clonePm = Model::factory('ParticipleModel')->create();
         $clonePm->verbModel = $newModelNumber;
         $clonePm->adjectiveModel = $pm->adjectiveModel;
         $clonePm->save();
     }
     // Migrate the selected lexems.
     if ($chooseLexems && $lexemModelIds) {
         foreach ($lexemModelIds as $lexemModelId) {
             $lm = LexemModel::get_by_id($lexemModelId);
             $lm->modelNumber = $newModelNumber;
             $lm->save();
             // It is not necessary to regenerate the paradigm for now, since
             // the inflected forms are identical.
         }
     }
Example #4
0
 /**
  * Called when the model type of a lexem changes from VT to something else.
  * Only deletes participles that do not have their own definitions.
  */
 public function deleteParticiple($oldModelNumber)
 {
     $infl = Inflection::loadParticiple();
     $pm = ParticipleModel::loadByVerbModel($oldModelNumber);
     $this->_deleteDependentModels($infl->id, 'A', array($pm->adjectiveModel));
 }