/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param ItemSubType $obj A ItemSubType object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool($obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = serialize(array((string) $obj->getId(), (string) $obj->getMainTypeId())); } // if key === null ItemSubTypePeer::$instances[$key] = $obj; } }
/** * @param $API_JSON * @param $offset */ function processApiData($API_JSON, $offset) { $APIItems = APIItemV2::getMultipleItemsByJSON($API_JSON); try { $itemCount = $offset; foreach ($APIItems as $APIItem) { $itemCount++; if ($APIItem == null) { print "Skipped item {$itemCount} on page {$offset}.\n"; continue; } echo "{$itemCount}: {$APIItem->getName()} (ID: {$APIItem->getItemId()})\n"; $itemData = array('TypeId' => getOrCreateTypeID($APIItem->getMarketType()), 'DataId' => $APIItem->getItemId(), 'Name' => $APIItem->getName(), 'RestrictionLevel' => $APIItem->getLevel(), 'Rarity' => getRarityID($APIItem->getRarity()), 'VendorSellPrice' => $APIItem->getVendorValue(), 'Img' => $APIItem->getImageURL(), 'RarityWord' => $APIItem->getRarity(), 'UnsellableFlag' => $APIItem->isUnsellable()); $item = ItemQuery::create()->findPK($APIItem->getItemId()); if ($item === null) { $item = new Item(); } $item->fromArray($itemData); $itemType = ItemTypeQuery::create()->findPk($itemData['TypeId']); if ($itemType !== null) { if ($APIItem->getSubType() !== null) { $itemSubType = ItemSubTypeQuery::create()->findOneByTitle($APIItem->getDBSubType()); if ($itemSubType === null) { //All of the below types are known to not exist in the market data with an ID (by this name). //Rune/Sigil/Utility/Gem/Booze/Halloween/LargeBundle/RentableContractNpc/ContractNPC/UnlimitedConsumable //TwoHandedToy/AppearanceChange/Immediate/Unknown $itemSubTypes = ItemSubTypeQuery::create()->filterByMainTypeId($itemData['TypeId'])->withColumn('MAX(id)', 'MAXid')->find(); $SubTypeID = $itemSubTypes[0]->getMAXid() + 1; $itemSubType = new ItemSubType(); $itemSubType->fromArray(array('Id' => $SubTypeID, 'MainTypeId' => $itemData['TypeId'], 'Title' => $APIItem->getDBSubType())); $itemSubType->save(); $itemType->addSubType($itemSubType); $item->setItemSubType($itemSubType); } $itemType->addSubType($itemSubType); $item->setItemSubType($itemSubType); } $item->setItemType($itemType); } $item->save(); } } catch (Exception $e) { echo "failed [[ {$e->getMessage()} ]] .. \n"; } }
/** * Exclude object from result * * @param ItemSubType $itemSubType Object to remove from the list of results * * @return ItemSubTypeQuery The current query, for fluid interface */ public function prune($itemSubType = null) { if ($itemSubType) { $this->addCond('pruneCond0', $this->getAliasedColName(ItemSubTypePeer::ID), $itemSubType->getId(), Criteria::NOT_EQUAL); $this->addCond('pruneCond1', $this->getAliasedColName(ItemSubTypePeer::MAIN_TYPE_ID), $itemSubType->getMainTypeId(), Criteria::NOT_EQUAL); $this->combine(array('pruneCond0', 'pruneCond1'), Criteria::LOGICAL_OR); } return $this; }
/** * Filter the query by a related ItemSubType object * * @param ItemSubType|PropelObjectCollection $itemSubType the related object to use as filter * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL * * @return ItemTypeQuery The current query, for fluid interface * @throws PropelException - if the provided filter is invalid. */ public function filterBySubType($itemSubType, $comparison = null) { if ($itemSubType instanceof ItemSubType) { return $this->addUsingAlias(ItemTypePeer::ID, $itemSubType->getMainTypeId(), $comparison); } elseif ($itemSubType instanceof PropelObjectCollection) { return $this->useSubTypeQuery()->filterByPrimaryKeys($itemSubType->getPrimaryKeys())->endUse(); } else { throw new PropelException('filterBySubType() only accepts arguments of type ItemSubType or PropelCollection'); } }
/** * Declares an association between this object and a ItemSubType object. * * @param ItemSubType $v * @return Item The current object (for fluent API support) * @throws PropelException */ public function setItemSubType(ItemSubType $v = null) { if ($v === null) { $this->setItemSubTypeId(NULL); } else { $this->setItemSubTypeId($v->getId()); } $this->aItemSubType = $v; // Add binding for other direction of this n:n relationship. // If this object has already been added to the ItemSubType object, it will not be re-added. if ($v !== null) { $v->addItem($this); } return $this; }
/** * Filter the query by a related ItemSubType object * * @param ItemSubType|PropelObjectCollection $itemSubType The related object(s) to use as filter * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL * * @return ItemQuery The current query, for fluid interface * @throws PropelException - if the provided filter is invalid. */ public function filterByItemSubType($itemSubType, $comparison = null) { if ($itemSubType instanceof ItemSubType) { return $this->addUsingAlias(ItemPeer::ITEM_SUB_TYPE_ID, $itemSubType->getId(), $comparison); } elseif ($itemSubType instanceof PropelObjectCollection) { if (null === $comparison) { $comparison = Criteria::IN; } return $this->addUsingAlias(ItemPeer::ITEM_SUB_TYPE_ID, $itemSubType->toKeyValue('Id', 'Id'), $comparison); } else { throw new PropelException('filterByItemSubType() only accepts arguments of type ItemSubType or PropelCollection'); } }